如果我插入以下内容:
Insert the Text:
ACACACA
Insert a value for k:
2
对于以下代码
print("Insert the Text:")
Text = input()
print("Insert a value for k:")
k = int(input())
Pattern = " "
count = [ ]
FrequentPatterns = [ ]
def FrequentWords(Text, k):
for i in range (len(Text)-k+1):
Pattern = Text[i: i+k]
c = 0
for i in range (len(Text)-len(Pattern)+1):
if Text[i: i+len(Pattern)] == Pattern:
c = c+1
else:
continue
count.extend([c])
print(count)
if count[i] == max(count):
FrequentPatterns.extend([Pattern])
return FrequentPatterns
FrequentWords(Text, k)
我把下面的东西拿出来
Insert the Text:
ACACACA
Insert a value for k:
2
[3, 3, 3, 3, 3, 3]
['CA']
显然有两个FrequentPatterns
。所以最后一个列表输出应该是['AC', 'CA']
我不知道为什么这个代码不起作用。如果有人能帮忙,我真的很感激
下面是解决这个问题的方法:
其工作方式是:
k
的字符串块,例如:k - 1
(1是k == 2
的最大值)groupby()
将这些块分组sorted()
按计数对它们进行排序测试:
印刷品:
它已经排序,您可以从返回列表的前面选择最频繁的一个:
印刷品:
相关问题 更多 >
编程相关推荐