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

南宁做企业网站搜狗友链交换

南宁做企业网站,搜狗友链交换,亿度网络 网站建设,河南seo网站策划class Solution:def removeDuplicates(self, s: str) -> str:res list(s)slow fast 0length len(res)while fast < length:# 如果一样直接换&#xff0c;不一样会把后面的填在slow的位置res[slow] res[fast]# 如果发现和前一个一样&#xff0c;就退一格指针if slow …

在这里插入图片描述

class Solution:def removeDuplicates(self, s: str) -> str:res = list(s)slow = fast = 0length = len(res)while fast < length:# 如果一样直接换,不一样会把后面的填在slow的位置res[slow] = res[fast]# 如果发现和前一个一样,就退一格指针if slow > 0 and res[slow] == res[slow - 1]:slow -= 1else:slow += 1fast += 1return ''.join(res[0: slow])

这段代码实现了一个去除字符串中相邻重复字符的功能,具体方法是使用双指针来模拟栈的操作。以下是逐步解释:

  1. 类定义:定义了一个名为 Solution 的类,其中包含一个名为 removeDuplicates 的方法。

  2. 方法参数removeDuplicates 方法接受一个字符串 s 作为输入,返回去除相邻重复字符后的字符串。

  3. 初始化

    • 将字符串 s 转换为列表 res(因为字符串是不可变的)。
    • 定义两个指针 slowfast,均初始化为 0。slow 指针用于将结果写入新位置,fast 用于遍历原字符串。
    • 计算字符串的长度 length
  4. 主循环while fast < length:

    • res[fast] 的值复制到 res[slow],这一步相当于将字符放到结果的位置。
  5. 判断条件

    • if slow > 0 and res[slow] == res[slow - 1]::如果 slow 大于 0 且当前字符与前一个字符相同,说明找到了相邻重复字符。此时将 slow 指针向后退一位。
  6. 指针移动

    • 如果没有发现相邻重复,slow 加 1,表示成功放入一个新的字符。
    • fast 每次循环都加 1,以继续遍历字符串。
  7. 返回结果return ''.join(res[0: slow]):最后,将 res 列表从 0 到 slow 的部分合并成一个字符串并返回,得到去除相邻重复字符后的结果。

总体来说,这个方法通过双指针的方式,有效地处理了字符串中的相邻重复字符,具有较好的性能。
我们来详细分析一下输入为 abbaca 时代码的执行流程。

  1. 初始化

    • 输入字符串:s = "abbaca"
    • 转换为列表:res = ['a', 'b', 'b', 'a', 'c', 'a']
    • 初始化指针:slow = 0fast = 0
    • 字符串长度:length = 6
  2. 开始循环

    • 第一次迭代 (fast = 0):

      • res[slow] = res[fast]res[0] = res[0]a),无变化。
      • slow = 1,fast 加 1(fast = 1)。
    • 第二次迭代 (fast = 1):

      • res[slow] = res[fast]res[1] = res[1]b),无变化。
      • slow = 2,fast 加 1(fast = 2)。
    • 第三次迭代 (fast = 2):

      • res[slow] = res[fast]res[2] = res[2]b),无变化。
      • 检查相邻:res[2] == res[1]b == b),相同,slow 向后退,slow = 1
      • fast 加 1(fast = 3)。
    • 第四次迭代 (fast = 3):

      • res[slow] = res[fast]res[1] = res[3]a),变为 ['a', 'a', 'b', 'a', 'c', 'a']
      • 检查相邻:res[1] == res[0]a == a),相同,slow 向后退,slow = 0
      • fast 加 1(fast = 4)。
    • 第五次迭代 (fast = 4):

      • res[slow] = res[fast]res[0] = res[4]c),变为 ['c', 'a', 'b', 'a', 'c', 'a']
      • 检查相邻:没有相邻重复,slow 加 1,slow = 1
      • fast 加 1(fast = 5)。
    • 第六次迭代 (fast = 5):

      • res[slow] = res[fast]res[1] = res[5]a),变为 ['c', 'a', 'b', 'a', 'c', 'a']
      • 检查相邻:res[1] == res[0]a != c),不同,slow 加 1,slow = 2
      • fast 加 1(fast = 6)。
  3. 结束循环

    • fast 达到 length,循环结束。
  4. 返回结果

    • 最后,返回 ''.join(res[0:slow]),也就是 res 的前 2 个元素 ['c', 'a'],结果为 "ca"

最终的返回结果是 "ca",成功去除了输入字符串 abbaca 中的相邻重复字符。

http://www.hengruixuexiao.com/news/50459.html

相关文章:

  • wordpress 多个css样式表seo推广专员
  • 天津电商网站制作长沙网络推广外包
  • 苗木企业网站建设源代码 园林网站源码程序 苗圃花卉网站制作源码推广营销是什么
  • 创建企业网站重庆快速排名优化
  • 福州网站建设服务公司广告投放平台排名
  • 潞城建设局网站全网霸屏推广系统
  • 陕西建设人才网站网站手机优化
  • 湖北网站建设平台网络推广是干什么的
  • 湖南网站建设小公司关键词挖掘站长
  • 怎么做的网站怎么放上网杭州百度竞价推广公司
  • 搭建网站需要学什么软件青岛seo推广专员
  • 大众团购网站怎么做在哪里找专业推广团队
  • 免费营销软件网站建设网站搜索优化技巧
  • 记事本做网站怎么不行啦搜索广告
  • 检查网站死链接营销渠道的三个类型
  • 32套网站后台管理系统模板湖南网站建站系统哪家好
  • 建网站找汉狮推广如何做网上引流
  • 服务态度 专业的网站建设湖南正规关键词优化首选
  • 外贸建站与推广如何做 google长沙网
  • 收藏网站的链接怎么做搜索网页内容
  • b2b网站盈利模式分析产品营销推广方案
  • 学校网站建设的作用郑州网络营销公司有哪些
  • 日照网站建设电话软文营销
  • 宝鸡营销型网站开发百度财报q3
  • 古典网站建设公司合肥seo代理商
  • 弄个app要花多少钱营销网站优化推广
  • 怎样申请做p2p融资网站什么搜索引擎搜索最全
  • 现在有哪些网站是做批发的百度广告怎么推广
  • 老板让我做网站负责人东莞疫情最新消息今天中高风险区
  • 虚拟主机 两个网站附近有没有学电脑培训的