Palindrom to słowo, które jest jego własną odwrotnością.
Teraz są słowa, które mogą wyglądać jak palindromy, ale nie są. Na przykład rozważ słowo sheesh, sheeshnie jest palindromem, ponieważ jego odwrotność jest hseehsinna, jednak jeśli uważamy, że shjest to jedna litera, to odwrotnie sheesh. Tego rodzaju słowo nazwiemy półpalindromem.
W szczególności słowo jest pół-palindromem, jeśli możemy podzielić je na pewną liczbę fragmentów, tak że gdy kolejność fragmentów zostanie odwrócona, powstanie oryginalne słowo. (Dla sheeshtych fragmentów są sh e e sh) Będziemy również wymagać, aby żaden fragment nie zawierał liter z obu połówek słowa (w przeciwnym razie każde słowo byłoby pół-palindromem). Na przykład rearnie jest pół-palindromem, ponieważ r ea rma fragment ( ea), który zawiera litery z obu stron oryginalnego słowa. Uważamy, że centralny znak słowa o nieparzystej długości nie znajduje się po żadnej stronie słowa, dlatego w przypadku słów o nieparzystej długości znak środkowy musi zawsze znajdować się we własnej części.
Twoim zadaniem będzie sporządzenie listy liczb całkowitych dodatnich i ustalenie, czy są one półpalindromem. Twój kod powinien wypisywać dwie spójne nierówne wartości, jedną, jeśli dane wejściowe są semi-palindromem, a drugą w przeciwnym razie. Jednak sekwencja bajtów kodu musi być sama w sobie półpalindromem .
Odpowiedzi będą oceniane w bajtach, przy czym mniej bajtów będzie lepszych.
Przypadki testowe
[] -> True
[1] -> True
[2,1,2] -> True
[3,4,2,2,3,4] -> True
[3,5,1,3,5] -> True
[1,2,3,1] -> False
[1,2,3,3,4,1] -> False
[11,44,1,1] -> False
[1,3,2,4,1,2,3] -> False
Program do generowania większej liczby przypadków testowych.
Borious zauważył, że są one podobne do uogólnionych palindromów Smarandache . Więc jeśli chcesz trochę dalej czytać, to jedno miejsce na początek.