查找最长子字符串的长度的程序,该子字符串在Python中具有两个不同的元素

假设我们有一个字符串s,我们必须找到包含最多2个不同字符的最长子字符串的长度。

因此,如果输入类似于s =“ xyzzy”,则输出将为4,因为“ yzzy”是最长的子字符串,最多包含2个唯一字符。

为了解决这个问题,我们将按照以下步骤操作:

  • 开始:= 0

  • c:=映射

  • 回答:= 0

  • 对于范围从0到s的大小,请执行

    • c [s [start]]:= c [s [start]]-1


    • 如果c [s [start]]为0,则

    • 开始:=开始+ 1

    • 删除c [s [start]]

    • c [s [end]]:= c [s [end]] + 1

    • 当c> 2的大小时

    • ans:= ans和(end-start + 1)的最大值

    • 返回ans

    让我们看下面的实现以更好地理解-

    示例

    class Solution:

       def solve(self, s):

          from collections import Counter

          start = 0

          c = Counter()      ans = 0

          for end in range(len(s)):

             c[s[end]] += 1

             while len(c) > 2:

                c[s[start]] -= 1

                if not c[s[start]]:

                   del c[s[start]]

                start += 1

             ans = max(ans, end - start + 1)

          return ans

    ob = Solution()s = "xyzzy"

    print(ob.solve(s))

    输入值

    s = "xyzzy"

    输出结果

    4

    以上是 查找最长子字符串的长度的程序,该子字符串在Python中具有两个不同的元素 的全部内容, 来源链接: utcz.com/z/316280.html

    回到顶部