给定一个字符串,找出python中最高的重复字符数

2024-10-01 09:23:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手。试图解决一些一般的编程问题。作为其中的一部分,我尝试了许多方法来实现以下目标。例如,我有一个这样的字符串

s = "abbcddeeffffcccddddggggghhhiaajjjkk"

我想找出给定字符串中每个字符的最大连续出现次数。在上述情况下,输出应该如下所示:

^{pr2}$

感谢任何帮助,谢谢!!在


Tags: 方法字符串目标编程字符次数新手pr2
3条回答

您可以使用itertools.groupby找出每组重复字母的长度,然后按组的长度排序。在

>>> s = "abbcddeeffffcccddddggggghhhiaajjjkk"
>>> from itertools import groupby
>>> repeats = sorted([(letter, len(list(group))) for letter, group in groupby(s)], key = lambda i: i[1], reverse = True)
>>> repeats
[('g', 5), ('f', 4), ('d', 4), ('c', 3), ('h', 3), ('j', 3), ('b', 2), ('d', 2), ('e', 2), ('a', 2), ('k', 2), ('a', 1), ('c', 1), ('i', 1)]
>>> repeats[0]
('g', 5)
>>> s = "abbcddeeffffcccddddggggghhhiaajjjkk"
>>> for x in sorted(set(s)):
...   i = 1; 
...   while x * i in s:
...     i += 1
...   print x, "-", i - 1
... 
a - 2
b - 2
c - 3
d - 4
e - 2
f - 4
g - 5
h - 3
i - 1
j - 3
k - 2

有点老掉牙,不过是为了好玩。在

s = 'aaaabbbbbcdddddddddddd1111000000000000000'

string_set = list(set(list(s)))
string_count_dict = {key: s.count(key) for key in string_set}
print(sorted(string_count_dict.items()))

输出:

^{pr2}$

相关问题 更多 >