我正在学习Python,以完成我的学校作业。基本上,我需要在字符串列表中找到最长的重复子字符串,如此处所示。我已经阅读了这篇文章,并且理解了我应该做什么。
到目前为止,我的实现如下:
def long_rptr_subString(testList):
longSubstring = ''
if len(testList) > 1 and len(testList[0]) > 0:
for i in range(len(testList[0])):
for j in range(len(testList[0])-i+1):
if j > len(longSubstring) and all(testList[0][i:i+j] in x for x in testList):
longSubstring = testList[0][i:i+j]
return longSubstring
现在,如果我使用['slide', 'glidb', 'flidt', 'cridz', 'bidr']
来调用我的函数,我会得到正确的结果,最长的子字符串是'id'
。
然而,当我传递列表['slide', 'glidb', 'flidt', 'cridz', 'bidr', 'balh', 'tejka', 'djakljskdl', 'blah', 'blah', 'blah']
时,我没有得到任何返回结果。 我应该得到'blah'
作为我最长的子字符串,但我还没有想出一种方法来实现这一点。似乎只有在列表的所有项目中匹配子字符串时,我才能匹配子字符串。如何修改我的代码/逻辑以获取出现多次的最长子字符串?
谢谢。