假设我们有一个字符串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