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
, sheesh
nie jest palindromem, ponieważ jego odwrotność jest hseehs
inna, jednak jeśli uważamy, że sh
jest 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 sheesh
tych 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 rear
nie jest pół-palindromem, ponieważ r ea r
ma 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.