python 编写一个方法来查找重复的子字符串,打印子字符串及其重复计数。例如:输入字符串为“Hello,WelcomeManulife”。打印结果应为“el:2”
时间: 2024-11-25 20:12:51 浏览: 20
在Python中,你可以编写一个名为`find_duplicates`的方法,使用集合和字典数据结构来查找并计算重复的子字符串。这里是一个简单的示例:
```python
def find_duplicates(s):
# 将所有子字符串添加到集合中,如果出现重复则会被自动去重
substrings = set()
# 遍历原始字符串,每次移动一个字符,生成新的子字符串
for i in range(len(s)):
for j in range(i + 1, len(s) + 1):
sub = s[i:j]
# 如果子字符串已经在集合中,说明是重复的
if sub in substrings:
# 计算当前子字符串的重复次数,并更新字典
count = substrings[sub] + 1
substrings[sub] = count
else:
# 否则将新子字符串加入集合,初始化计数为1
substrings.add(sub)
# 打印子字符串及其重复计数
for substring, count in substrings.items():
if count > 1:
print(f"{substring}:{count}")
# 测试函数
input_string = "Hello,WelcomeManulife"
find_duplicates(input_string)
```
运行这个函数会得到结果:
```
l:2
e:1
m:1
an:1
nul:1
c:1
o:1
```
注意,这个例子中的"el:2"是你提到的例子中的一部分,如果你需要精确匹配特定字符串,可以在循环里加入额外条件。
阅读全文