1

Тема: Допоможіть оптимізувати код знаходження найдовшого підрядка паліндрома

Зенику задано рядок S, який складається з N англійських літер. Потрібно допомогти йому порахувати довжину найбільшого підрядка, який є паліндромом.
  Вхідні дані:
В першому рядку задане одне ціле число N - розмір рядка.
В другому задано рядок S який складається з N малих англійських літер.
Вихідні дані: в єдиному рядку вивести довжину найбільшого підрядка S, який є паліндромом.
    Обмеження: 1<=N<=7000
  Пробний тест:
   N=6
    S=banana
   Результат: 5
Я написав код який на алготестері проходить лише для 10 тестів. Розумію, що при великих кількостях символів він є неефективним. Чув що можна оптимізувати використовуючи алгоритм Манакера про не розумію як це зробити. Ось мій код:

2

Re: Допоможіть оптимізувати код знаходження найдовшого підрядка паліндрома

Де код?

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]
Подякували: koala, Chemist-i2

3

Re: Допоможіть оптимізувати код знаходження найдовшого підрядка паліндрома

Коли додаєте файл, треба натискати "add file".
Але якщо там рівно один файл з кодом, викладайте код прямо в тексті, у тегу code (кнопка <>)

4

Re: Допоможіть оптимізувати код знаходження найдовшого підрядка паліндрома

Оо, ще один чувак з Львівських Універів

Навчаюсь вчитись, щоб навчатись.

5

Re: Допоможіть оптимізувати код знаходження найдовшого підрядка паліндрома

Якщо по темі, то мабуть все ви написали простим лінійним (або щось не дуже заморочливе) алгоритмом. 10 тестів пройшло, далі - ноу, бо більші вхідні дані.

На хабрі є повний псевдокод, гуглити: "динамічне програмування, паліндром". Я зміг розібратись колись

Навчаюсь вчитись, щоб навчатись.