程序计算在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