用 Python 编写程序,计算给定字符串中出现多次的 k 长度子字符串

pythonserver side programmingprogramming更新于 2026/1/12 20:28:17

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

因此,如果输入为 s = "xxxyyy", k = 2,则输出为 2

要解决这个问题,我们将遵循以下步骤 −

  • seen := 一个新列表
  • 对于范围为 0 到 s - k 大小的 i,执行
    • t := s 的子字符串 [从索引 i 到 i + k - 1]
    • 在 seen 的末尾插入 t
  • mp := 所有不同项的映射已见元素及其出现次数
  • 返回 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

相关文章


有用资源