Python程序:统计给定字符串中出现次数超过一次的k长度子串
假设我们有一个字符串s和一个数字k,我们需要找到s中出现次数超过一次的k长度子串的数量。
例如,如果输入是s = "xxxyyy", k = 2,则输出为2
为了解决这个问题,我们将遵循以下步骤:
- seen := 一个新的列表
- 对于 i 从 0 到 s 的大小 - k,执行:
- t := s 的子串(从索引 i 到 i + k - 1)
- 将 t 添加到 seen 的末尾
- mp := 一个映射,包含 seen 中所有不同元素及其出现的次数
- 返回 mp 中每个元素出现次数的总和,其中出现次数大于1
让我们看看下面的实现来更好地理解:
示例
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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP