我是编程新手,所以不要对我残酷:)我正在努力解决字符串中连续重复次数最多的问题。我得到了一个子字符串,例如“ABC”,然后我有一个包含字母 ex 序列的文件。 “ABC ABC BBC CDA ABC ABC ABC DBA”(这里不包括空格,只是为了更好看)。这里输出应该是3,这是一次又一次重复的最高次数。
我正在考虑使用 str.count(sub[, start[, end]]
方法,但我不知道如何使用它以获得有效的输出。我一直在尝试创建子字符串 s = string[i][j] ,然后使用 s2 ,即 string[i+len(substring):j+len(substring)]
但好像案例太多所以我放弃了。使用下面的代码我得到了有效的输出,但仅在少数情况下有效。我希望你能帮助我。谢谢!
substr_count = 0
string = "ABCABCBBCCDAABCABCDBA"
while True:
start = 0
substring = "ABC"
loc = string.find(substring,start)
if loc == -1:
break
substr_count += 1
start = loc + len(substring)
最佳答案
正如 usr2564301 所说,itertools.groupby
将是正确的选择。
这是一种愚蠢的、有点暴力的方法:
def max_repititions(string, substring):
if not substring:
return 0
for count in range(len(string), 0, -1):
if substring*count in string:
return count
return 0
string = "ABCABCBBCCDAABCABCDBA"
substring = "ABC"
print(max_repititions(string, substring))
关于python - Python 中的连续重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60675554/