• b_zj_最大连续的相同字符子串的长度(双指针+找突破点)


    仅包含’a’和’b’两种字符的字符串s,每次操作可以把一个’a’设置为’b’,或者把一个’b’置成’a’);问在有限的操作数范围m内,能够得到最大连续的相同字符的子串的长度是多少。

    思路:变量a记录遇到的字符a的个数,变量b记录遇到的字符b的个数;我们有m次机会,也就是说只要当前子串s[0:i]只要a/b其中之一不超过m个,我们就有能力变为连续相同字符

    def solve():
        n,m=map(int, input().split())
        s=input()
        l,r,ans=0,0,1  
        a,b=0,0
        while r<n:
            if s[r]=='a': a+=1
            else: b+=1
            if a>m and b>m:
                if s[l]=='a': a-=1
                else: b-=1
                l+=1
            ans=max(ans,r-l+1)
            r+=1
        return ans
    print(solve())
    
  • 相关阅读:
    position之属性
    Grid网格布局
    position 属性指定了元素的定位类型
    注册表单
    简单页面
    自我介绍
    正则表达式
    Dom和Bom
    颜色和单位
    伪类和伪元素的区别
  • 原文地址:https://www.cnblogs.com/wdt1/p/14138945.html
Copyright © 2020-2023  润新知