Oto problem (6.7 ch6) z książki Algorithms (autorstwa Vazirani), która nieznacznie różni się od klasycznego problemu, który jest finding longest palindrome. Jak mogę rozwiązać ten problem?jak znaleźć najdłuższą podciąć palindromów?
podciąg jest palindromiczna jeśli jest samo czy odczytu od lewej do prawej lub prawej do lewej. Na przykład, sekwencja
A,C,G,T,G,T,C,A,A,A,A,T,C,G
ma wiele palindromową podsekwencje tym
A,C,G,C,A
iA,A,A,A
(drugiej strony, podciągA,C,T
nie są palindromowe). Opracuj algorytm , który przyjmuje sekwencjęx[1 ...n]
i zwraca (najdłuższy) najdłuższy podtyp palinowy. Jego czas pracy powinien byćO(n^2)
ja polecam Ci dać to spojrzeć, to papier o znalezieniu najdłuższego palindrom w czasie liniowym. (http://www.akalin.cx/longest-palindrome-linear-time) –
Wydaje się, że "podsekwencja" w twoim rozumieniu tego słowa oznacza, że 'abcxxba' ma' abcba' jako najdłuższy podtyp palindromiczny - czy to jest poprawne ? Ponieważ w takim przypadku zaakceptowana odpowiedź wydaje mi się błędna ... – Floris
Rozwiązanie oparte na C++ tutaj - https://stackoverflow.com/a/44542960/1874627 – saurabheights