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

厦门市建设工程质量安全协会网站设计软件cad

厦门市建设工程质量安全协会网站,设计软件cad,有谁想做网站 优帮云,室内设计学校哪个好博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 1910.删除一个字符串中所有出现的给定子字符串【中等】 题目: …
  • 博客主页:誓则盟约
  • 系列专栏:IT竞赛 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍ 

1910.删除一个字符串中所有出现的给定子字符串【中等

题目:

给你两个字符串 s 和 part ,请你对 s 反复执行以下操作直到 所有 子字符串 part 都被删除:

  • 找到 s 中 最左边 的子字符串 part ,并将它从 s 中删除。

请你返回从 s 中删除所有 part 子字符串以后得到的剩余字符串。

一个 子字符串 是一个字符串中连续的字符序列。

示例 1:

输入:s = "daabcbaabcbc", part = "abc"
输出:"dab"
解释:以下操作按顺序执行:
- s = "daabcbaabcbc" ,删除下标从 2 开始的 "abc" ,得到 s = "dabaabcbc" 。
- s = "dabaabcbc" ,删除下标从 4 开始的 "abc" ,得到 s = "dababc" 。
- s = "dababc" ,删除下标从 3 开始的 "abc" ,得到 s = "dab" 。
此时 s 中不再含有子字符串 "abc" 。

示例 2:

输入:s = "axxxxyyyyb", part = "xy"
输出:"ab"
解释:以下操作按顺序执行:
- s = "axxxxyyyyb" ,删除下标从 4 开始的 "xy" ,得到 s = "axxxyyyb" 。
- s = "axxxyyyb" ,删除下标从 3 开始的 "xy" ,得到 s = "axxyyb" 。
- s = "axxyyb" ,删除下标从 2 开始的 "xy" ,得到 s = "axyb" 。
- s = "axyb" ,删除下标从 1 开始的 "xy" ,得到 s = "ab" 。
此时 s 中不再含有子字符串 "xy" 。

提示:

  • 1 <= s.length <= 1000
  • 1 <= part.length <= 1000
  • s​​​​​​ 和 part 只包小写英文字母。

分析问题:

思路1:

        题目很有意思哈,从左往右遍历,找到给定的part则删除part然后重新遍历,有趣。那么这里我们用for循环肯定是不行的,我们不知道什么时间截止,所以考虑用while循环,那么我们Python可以借助一个有趣的函数来帮助我们找part,就是split函数。

        split函数,可以传入两个常用的参数,参数1:分隔标志。就是元素见了这个标志就把左右分成两部分,这里的这个标志我们就可以设置为part,遇见part就分隔,如此part就会被自动删除。那么第二个参数是分隔次数。没错,正好可以满足我们的需求,我们每次删除一次都需要重新遍历一次,那么我们就可以设置这个次数为1,意思就是只分隔一次

        那么我们每次分隔遍历都会刷新一下s,while循环的进入条件就可以设置为 while part in s: 只要还存在part在s里,那么就继续循环。直到最后返回s。

思路2:

        除了split函数有这个功能外,其实还有一个不常用但是常见的函数也可以达到这种目的,这个函数就是 replace函数

        replace函数可以接受三个参数,分别为 要被替换的值 和 要替换成的值 以及 替换次数。这里我们就可以设置被替换掉的值为part,那么把它给替换成空字符串"",然后 替换次数还是设置为1次,替换一次我们就重新循环一次。也是用while循环并且进入循环和退出循环的条件与上方一样。

代码实现:

思路1代码实现:
class Solution:def removeOccurrences(self, s: str, part: str) -> str:while part in s:v=s.split(part,1)s=''for i in v:s+=ireturn s

思路2代码实现:

class Solution:def removeOccurrences(self, s: str, part: str) -> str:while part in s:s = s.replace(part,'',1)return s

 两者复杂度其实差不多,但是思路二有点以空间换时间的意思了哈。

总结:

共同点

  • 目标相同:两段代码的目的都是从给定的字符串 s 中移除所有出现的特定子字符串 part 。

考点

  • 字符串操作:包括字符串的查找、分割、替换和拼接等操作。
  • 循环控制:使用 while 循环来持续处理,直到满足特定条件。

思路

  • 都是通过不断检查子字符串 part 在 s 中的存在情况来进行处理。
    • 第一段代码:通过 split 分割字符串,然后重新拼接来实现移除。
    • 第二段代码:直接使用 replace 方法替换子字符串,每次只替换一次。
  • 循环的条件都是只要子字符串 part 还存在于字符串 s 中,就继续处理。

        这道题很考验对字符串切割和循环的熟练程度,是练习字符串类型的好题!这里也可以考虑使用数据结构 栈 来解题。栈 也可以找到目标字符串并实现删除的一个功能,感兴趣的可以尝试。 

“心节以信居神,自为神上;视异义者无知。” ——《道世》

http://www.yayakq.cn/news/58586/

相关文章:

  • 厦门网站j建设国微 网站建设
  • iis网站权限怎么设置分类信息网站建设模板
  • 通辽网站建设培训wordpress万能主题
  • 网上商城网站建设怎么样建设公司网站
  • 不用下载的行情网站wordpress强制使用
  • 请seo的人帮做网站排名上海网站建设 方案
  • 智能建站cms管理系统上海建筑设计研究院有限公司
  • 做外贸建网站需要多少钱网站建设新的技术方案
  • 佛山哪家公司建设网站小程序发朋友圈的方法
  • 网站木马文件删除网站建设客户合同范本
  • 推广 高端网站设计黑龙江建设网ca数字证书如何注销
  • 怎么申请自己的网站网址怎样给公司做网站
  • 担路做网站网页制作教程图解
  • 做火情监控网站需要用什么系统地图网站抓取
  • 做个网站需要多久网站设计费用多少盐城网站建设找宇
  • 网站建设开发有什么好处中铁建设门户网登录咋进不去了
  • 网页设计简单的网站官方网站的必要性
  • 网址导航建站现代简约装修
  • 做婚恋网站有哪些中国电信备案网站
  • 备案做电影网站云服务器做网站新手教程
  • 巴中 网站建设分类目录 wordpress
  • 网站开发发展趋势2018电子商务网站建设实训心得体会
  • 海报石家庄网站建设优化
  • 昆明网上商城网站建设济南h5网站建设
  • php网站开发好学吗受欢迎的网站建设
  • 网站备案号要怎么查询建立网站需要钱吗
  • 企业建站系统开源深圳宝安通网站建设
  • 修改公司网站如何通过轻淘客做网站
  • 资讯门户类网站百度推广和百度竞价有什么区别
  • 网站建设及维护涉及哪些内容电子商务是干什么工作的