【蓝桥杯】3514字串简写

devtools/2025/3/16 18:14:08/

在这里插入图片描述

暴力

发现只能通过20%测试点。

k = int(input())
s, c1, c2 = input().split()
le = len(s)
s = [0] + [i for i in s] # 1 -- lecnt = 0
for i in range(1, le - (k-1) +1):if s[i] == c1:for j in range(i+(k-1),le+1):if s[j] == c2:cnt +=1
print(cnt)

优化

 if s[i] == c1:for j in range(i+(k-1),le+1):if s[j] == c2:cnt +=1

这一步分其实在求区间range(i+(k-1),le+1)c2的个数,由于要遍历所以很费时。想到可以用前缀和提前处理这一部分,节省一层循环。

k = int(input())
s, c1, c2 = input().split()
le = len(s)
s = [0] + [i for i in s] # 1 -- lepre = [0 for i in range(le+1)]
for i in range(1,le+1):if s[i] == c2:pre[i] = pre[i-1] + 1else:pre[i] = pre[i-1]
# print(pre)
cnt = 0
for i in range(1, le - (k-1) +1):if s[i] == c1:cnt += pre[-1] - pre[i+(k-1)-1] 
print(cnt)

总结

利用前缀和来替换掉循环。
这题多了一个长度k的限制条件,写起来要处理好下标索引。


http://www.ppmy.cn/devtools/167619.html

相关文章

Altium Designer——CHIP类元器件PCB封装绘制

文章目录 PCB封装组成元素:焊盘的属性 SS34肖特基二极管SMA(DO-214AC)封装绘制资料:步骤:1.绘制焊盘:用到的快捷键:资料: 2.绘制丝印:用到的快捷键:资料: PCB封装组成元素…

DeepSeek 与 ChatGPT的主要区别

DeepSeek 是由中国公司 DeepSeek AI (杭州深度求索人工智能基础技术研究有限公司)开发的 AI 聊天机器人,于 2024 年推出。相比之下,ChatGPT 是由美国 AI 研究实验室 OpenAI 创建的,自 2022 年以来就已上市。两者都是专…

深入理解HTTP与HTTPS:协议原理与C++实战指南

一、引言:HTTP与HTTPS是什么? HTTP(HyperText Transfer Protocol) 是互联网上应用最广泛的协议之一,用于客户端(如浏览器)与服务器之间的通信。它基于明文传输,简单高效&#xff0c…

Java在小米SU7 Ultra汽车中的技术赋能

目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…

创客匠人创始人IP变现大课将于3月在成都举办 助力知识付费转型

2025年3月15日至17日,由IP变现整体解决方案服务商创客匠人主办的“创始人IP变现大课”将在成都生物城凯悦嘉轩酒店举行。本次活动旨在为知识付费行业从业者提供系统化方法论与实战指导,解决创始人IP在流量获取、变现模式及同质化竞争中的核心痛点。 作为…

Python之if语句

闲暇之余,学学Python,整理成笔记分享给大家。 注:本文内容来源于《Python编程从入门到实践第3版》一书。 主要内容: # 一个简单的示例 cars [audi, bmw, subaru, toyota] for car in cars:if car bmw:print(car.upper())els…

Java泛型是什么?有什么作用?

Java泛型(Generics)是Java语言中一种类型参数化的机制,允许在类、接口、方法中使用类型参数,使代码能够处理多种数据类型,同时保证类型安全。泛型的主要目的是增强代码的复用性和安全性,避免类型转换错误。…

【Tools】Visual Studio Code安装保姆级教程(2025版)

00. 目录 文章目录 00. 目录01. Visual Studio Code概述02. Visual Studio Code下载03. Visual Studio Code安装04. Visual Studio Code配置05. 附录 01. Visual Studio Code概述 Visual Studio Code(简称 VS Code)是由微软开发的一款免费、开源且跨平台…