当前位置: 首页 > news >正文

网站正能量晚上不用下载进入免费大连装修公司哪家好

网站正能量晚上不用下载进入免费,大连装修公司哪家好,网络营销方式使用情况数据,外链网址AcWing《蓝桥杯集训每日一题》—— 3768. 字符串删减 文章目录AcWing《蓝桥杯集训每日一题》—— 3768. 字符串删减一、题目二、解题思路三、代码实现本次博客我是通过Notion软件写的,转md文件可能不太美观,大家可以去我的博客中查看:北天的 …

AcWing《蓝桥杯集训·每日一题》—— 3768. 字符串删减

文章目录

  • AcWing《蓝桥杯集训·每日一题》—— 3768. 字符串删减
  • 一、题目
  • 二、解题思路
  • 三、代码实现

本次博客我是通过Notion软件写的,转md文件可能不太美观,大家可以去我的博客中查看:北天的 BLOG,持续更新中,另外这是我创建的编程学习小组频道,想一起学习的朋友可以一起!!!

一、题目

现在,需要删掉其中的一些字母,使得字符串中不存在连续三个或三个以上的 x

请问,最少需要删掉多少个字母?

如果字符串本来就不存在连续的三个或三个以上 x,则无需删掉任何字母。

输入格式

第一行包含整数 nnn

第二行包含一个长度为 nnn 的由小写字母构成的字符串。

输出格式

输出最少需要删掉的字母个数。

数据范围

3≤n≤1003≤n≤1003n100

输入样例1:

6
xxxiii

输出样例1:

1

输入样例2:

5
xxoxx

输出样例2:

0

输入样例3:

10
xxxxxxxxxx

输出样例3:

8

二、解题思路

  1. 暴力枚举法:

    我们可以通过枚举所有长度为3的子串,判断是否为 ‘xxx’,从而找到需要删除的字符数量。具体实现方法是从下标2开始,每次取出以该下标为结尾的长度为3的子串,判断是否为 ‘xxx’,如果是,就需要删除中间那个字符,即下标为i-1的字符。最后统计需要删除的字符数量即可。暴力枚举法的时间复杂度为 O(n)O(n)O(n),空间复杂度为 O(1)O(1)O(1)

  2. 双指针法:

    我们可以通过维护两个指针 i 和 j,其中 i 指向当前处理的字符,j 指向最近一个不需要删除的字符。具体实现方法是遍历整个字符串,如果当前字符为 ‘x’,就将 cnt 加 1,如果 cnt 等于 3,说明需要删除当前字符,即将 res 加 1,如果 cnt 大于 3,说明当前字符需要删除,但是删除后会导致字符串中存在连续三个 ‘x’,因此需要将 j 后移一位,即将 j 赋值为 i-1,同时将 cnt 减 1,这样可以保证删除当前字符后,字符串中不存在连续三个 ‘x’。如果当前字符不为 ‘x’,则将 cnt 置为 0,j 赋值为 i。最后统计需要删除的字符数量即可。时间复杂度为 O(n)O(n)O(n),空间复杂度为 O(1)O(1)O(1)

总体而言,双指针法的效率更高,因为其只需要遍历一遍字符串,而暴力枚举法需要枚举所有长度为 3 的子串,效率相对较低。

三、代码实现

n = int(input())
st = input()
c = 0
# 枚举所有长度为 3 的子串
for i in range(2, n):# 判断是否为 'xxx'if st[i - 2:i + 1] == 'xxx':# 如果是,则需要删除中间那个字符,即下标为 i-1 的字符c += 1
# 输出需要删除的字符数量
print(c)

双指针法代码实现:

n = int(input())
s = input()res, cnt = 0, 0
j = -1
# 遍历整个字符串
for i in range(n):# 如果当前字符为 'x'if s[i] == "x":# 将 cnt 加 1cnt += 1# 如果 cnt 等于 3,说明需要删除当前字符if cnt == 3:# 将 res 加 1res += 1# 如果 cnt 大于 3,说明当前字符需要删除,# 但是删除后会导致字符串中存在连续三个 'x',# 因此需要将 j 后移一位,即将 j 赋值为 i-1,# 同时将 cnt 减 1,这样可以保证删除当前字符后,# 字符串中不存在连续三个 'x'elif cnt > 3:res += 1cnt -= 1j += 1else:# 如果当前字符不为 'x',将 cnt 置为 0,j 赋值为 icnt = 0j = i# 输出需要删除的字符数量
print(res)
http://www.yayakq.cn/news/754008/

相关文章:

  • 国内男女直接做的视频网站钙尔奇营销策划方案
  • 公司创建网站多少钱网站建设新手看什么书
  • 青岛网站建设哪家好 网络服务建设一个网站的文案需要
  • 商务网站建设试卷wordpress 修改为中文
  • 网站建设代理都有哪些广告发布登记管理规定
  • 如何做平台网站岳阳建设企业网站
  • 制作微信网页的网站吗做网站 信科网站建设便宜
  • 网站只做优化百度容易收录哪些网站
  • 织梦的手机端网站模板thinkphp做的上线网站
  • dede查看网站vs用户登录注册网站建设代码
  • 四川网站建设贴吧苏州网站设计公司兴田德润怎么样
  • 导航网站怎么建旗袍网页制作模板
  • 让别人做网站如何防止后门重庆网站怎么做出来的
  • 网站开速度几秒wordpress标题怎么
  • 江西省宜春市建设局网站wordpress移除评论字段
  • 自己做的网站怎么调用百度地图品牌建设的目的
  • 网站没有流量怎么办蓝色清爽网站
  • 定远县建设小学网站网站的空间域名
  • 网站设计一级网页企业信用网
  • 网站开发什么开发语言好wordpress广告推广插件
  • 网站建设腾讯课堂手机建站平台微点手赚
  • 网站建设联系方式做装修效果图的网站有哪些软件下载
  • 网站页脚有什么作用网站编程图
  • 网站代码建设 实例专业素材网站
  • 系统集成销售和网站建设销售怎么做网站跳转链接
  • 做鞋子的网站东莞公众号开发公司
  • .net网站开发代码磁力搜索神器
  • 做棋牌游戏网站c 网站登录验证码怎么做
  • asp.net网站 兼容视觉中国的图片可以拿来做网站
  • 网站开发合同模版做食品网站有哪些内容