首页 > 解决方案 > 使用python获取字符串中所有重复子字符串的计数

问题描述

我想获取字符串中特定长度的所有重复子字符串及其计数。示例:字符串 = "abcabcabcdabcd"

get_repeats(string, 3 #length of the substrings)

输出:

abc (4)
bca (2)
cab (2)

标签: pythonpython-3.x

解决方案


from collections import Counter

def get_repeats(s, k):
    ctr = Counter(s[i:i+k] for i in range(len(s) - k + 1))
    return {sub: c for sub, c in ctr.items() if c > 1}

和用法:

>>> get_repeats("abcabcabcdabcd", 3)
{'abc': 4, 'bca': 2, 'cab': 2}

推荐阅读