Un palindromo è una parola che è il suo contrario.
Ora ci sono alcune parole che potrebbero sembrare palindromi ma non lo sono. Ad esempio, considera la parola sheesh
, sheesh
non è un palindromo perché il suo contrario è hseehs
che è diverso, tuttavia se consideriamo sh
una singola lettera, allora è il contrario sheesh
. Questo tipo di parola chiameremo un semi-palindromo.
In particolare una parola è un semi-palindromo se possiamo dividere la parola in un certo numero di blocchi in modo tale che quando l'ordine dei blocchi viene invertito, si forma la parola originale. (Per sheesh
quei pezzi lo sono sh e e sh
) Inoltre non richiederemo che nessun pezzo contenga lettere di entrambe le metà della parola (altrimenti ogni parola sarebbe un semi-palindromo). Ad esempio rear
non è un semi-palindromo perché r ea r
ha un pezzo ( ea
) che contiene lettere da entrambi i lati della parola originale. Consideriamo il carattere centrale in una parola di lunghezza dispari che non si trova su entrambi i lati della parola, quindi per le parole di lunghezza dispari il carattere centrale deve essere sempre nel suo blocco.
Il tuo compito sarà quello di prendere un elenco di numeri interi positivi e determinare se sono semi-palindromi. Il codice dovrebbe generare due valori diseguali coerenti, uno se l'input è un semi-palindromo e l'altro in caso contrario. Tuttavia, la sequenza di byte del codice deve essere un semi-palindromo stesso.
Le risposte verranno classificate in byte con un numero inferiore di byte migliori.
Casi test
[] -> 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
Programma per generare più testcase.
Borrible ha sottolineato che questi sono simili ai palindromi generalizzati di Smarandache . Quindi, se vuoi fare qualche ulteriore lettura, questo è un punto da cui iniziare.