Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
ML1_E - Usuwanie palindromów |
Dany jest wyraz złożony z małych liter alfabetu angielskiego. Na wyrazie tym możemy wykonać dowolną liczbę operacji. Pojedyncza operacja polega na usunięciu dowolnej części wyrazu. Usuwany fragment musi być palindromem. Pozostałe części są sklejane w nowy wyraz z zachowaniem ich dotychczasowej kolejności. Twoim zadaniem jest całkowite usunięcie wyrazu.
Palindrom jest to wyraz, który czytany od lewej strony do prawej brzmi tak samo jak czytany od prawej strony do lewej np. kajak.
Odpowiedz na pytanie, ile minimalnie operacji trzeba wykonać żeby usunąć cały wyraz?
Wejście
Na wejściu znajduje się wyraz złożony z małych liter alfabetu angielskiego, którego długość nie przekracza 400 liter.
Wyjście
Na wyjściu należy wypisać odpowiedź na pytanie, ile minimalnie operacji trzeba wykonać żeby usunąć cały wyraz?
Przykład
Wejście:
addbcba
Wyjście:
2
Wyjaśnienie do przykładu:
W pierwszym kroku usuwamy fragment dd. Po jego usunięciu otrzymujemy wyraz abcba. Ponieważ jest on palindromem możemy go w całości usunąć w drugim kroku.
Dodane przez: | Maciej Boniecki |
Data dodania: | 2019-06-26 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |
Pochodzenie: | Mini Liga 1 |