Обучение 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']
Я не получаю никаких результатов. I должен вернуться 'blah'
как моя самая длинная подстрока, но я не понял способ сделать это. Кажется, я могу только подбирать подстроки, когда они находятся во ВСЕХ элементах списка. Как я могу изменить свой код/логику, чтобы получить самую длинную подстроку, которая встречается более одного раза?
спасибо.