【发布时间】:2014-03-22 18:01:09
【问题描述】:
在我去学校工作的时候学习 python。本质上,我需要在字符串列表中找到最长的重复子字符串,如here 所示。我一直在阅读this article 并了解我应该做什么。
目前我的实现如下:
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' 作为我最长的子字符串,但我还没有想出办法来实现这一点。似乎我只能在列表的所有项目中匹配子字符串。如何修改我的代码/逻辑以获取出现多次的最长子字符串?
谢谢。
【问题讨论】:
标签: python string loops longest-substring