Напишите функцию, которая возвращает самый длинный палиндром в данной строке

например, "ccddcc" в строке "abaccddccefe"

Я думал о решении, но оно работает за O (n ^ 2) времени

Алго 1:

Шаги: это метод грубой силы

Есть 2 для петель
для i = от 1 до i меньше, чем array.length -1
for j = i + 1 до j меньше, чем array.length Таким образом, вы можете получить подстроку каждой возможной комбинации из массива Имеет функцию палиндрома, которая проверяет, является ли строка палиндромомso для каждой подстроки (i, j) вызовите эту функцию, если это палиндром, сохраните ее в строковой переменной Если вы найдете следующую подстроку палиндрома и если она больше текущей, замените ее текущей. Наконец, ваша строковая переменная будет иметь ответ

Вопросы: 1. Этот алгоритм работает за O (n ^ 2) времени.

Алго 2:

Пересмотрите строку и сохраните ее в другом массиве Теперь найдите самую подходящую подстроку между двумя массивами Но это тоже работает за O (n ^ 2) время

Можете ли вы, ребята, подумать о алгоритме, который работает в лучшее время. Если возможно O (n) время

Ответы на вопрос(21)

Ваш ответ на вопрос