Ein Palindrom ist ein Wort, das sein eigenes Gegenteil ist.
Nun gibt es einige Wörter, die wie Palindrome aussehen, dies aber nicht sind. Zum Beispiel betrachtet das Wort sheesh
, sheesh
ist kein Palindrom , weil seine Rückseite ist hseehs
die anders ist, aber wenn man bedenkt , sh
ein einzelner Buchstabe sein, dann ist es umgekehrt sheesh
. Diese Art von Wort nennen wir ein Halbpalindrom.
Insbesondere ist ein Wort ein Halbpalindrom, wenn wir das Wort in eine bestimmte Anzahl von Abschnitten aufteilen können, sodass beim Umkehren der Reihenfolge der Abschnitte das ursprüngliche Wort gebildet wird. (Für sheesh
diese Chunks gilt sh e e sh
) Wir werden auch verlangen, dass kein Chunk Buchstaben aus beiden Worthälften enthält (ansonsten wäre jedes Wort ein Halbpalindrom). Beispielsweise rear
handelt es sich nicht um ein Halbpalindrom, da r ea r
es einen Block ( ea
) enthält, der Buchstaben von beiden Seiten des ursprünglichen Wortes enthält. Wir betrachten das zentrale Zeichen in einem Wort mit ungerader Länge als keine Seite des Wortes, daher muss das zentrale Zeichen bei Wörtern mit ungerader Länge immer in einem eigenen Block stehen.
Ihre Aufgabe wird es sein, eine Liste positiver Ganzzahlen zu erstellen und festzustellen, ob es sich um ein Halbpalindrom handelt. Ihr Code sollte zwei konsistente, ungleiche Werte ausgeben, einen, wenn die Eingabe ein Halbpalindrom ist, und den anderen, wenn die Eingabe ein Halbpalindrom ist. Die Byte-Sequenz Ihres Codes muss jedoch selbst ein Semi-Palindrom sein.
Antworten werden in Bytes bewertet, wobei weniger Bytes besser sind.
Testfälle
[] -> 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
Programm, um mehr Testfälle zu generieren.
borrible wies darauf hin, dass diese generalisierten Smarandache-Palindromen ähnlich sind . Wenn Sie also weiterlesen möchten, ist dies ein Ausgangspunkt.