Наибольшая общая подстрока python
Дано n строк. Требуется найти наибольшую общую подстроку. Вводится сначала количество строк, а затем строки каждая на отдельной строке
Пример
Ввод: 3
abacaba
mycabarchive
acabistrue
Вывод:
cab
Ограничение по времени: 0.2 секунды
Ограничение по памяти: 64мб
В половине тестов на время выдает результат больше чем 0.2с. Как можно это исправить?
n = int(input())
strings = [input() for i in range(n)]
strings = [(strings[i], len(strings[i])) for i in range(n)]
strings = sorted(strings, key=lambda string: string[1])
stringg = strings[0][0]
answer = ""
for i in range(len(stringg)):
for j in range(i, len(stringg)):
s = stringg[i:j + 1]
if len(s) < len(answer):
continue
b = True
for string in strings[1:]:
if s not in string[0]:
b = False
break
if b:
answer = s
print(answer)