程序计算在Python中给定字符串中多次出现的k个长度的子字符串

假设我们有一个字符串s和一个数字k,我们必须找到s中k个长度为k的子字符串的数量,这些子字符串在s中出现多次。

因此,如果输入像s =“ xxxyyy”,k = 2,则输出将为2

为了解决这个问题,我们将遵循以下步骤-

  • 看过:=一个新列表

  • 对于范围0到s-k的i,做

    • t:= s的子字符串[从索引i到i + k-1]

    • 在看到的末尾插入t

  • mp:=所见及其出现的所有不同元素的映射

  • 返回出现次数大于1的mp中每个元素的所有出现的总和

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

示例

class Solution:
   def solve(self, s, k):
      from collections import Counter
      seen = []
      for i in range(len(s) - k + 1):
         t = s[i : i + k]
         seen.append(t)
         s = Counter(seen)
      return sum(1 for x in s.values() if x > 1)
ob = Solution()print(ob.solve("xxxyyy",2))

输入项

"xxxyyy",2

输出结果

2
猜你喜欢