Наибольшая общая подстрока 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)

Ответы (0 шт):