Problema
Decidi se text è un palindromo, considerando solo lettere e cifre e ignorando le maiuscole/minuscole.
Implementa is_palindrome(text).
Input
text: Il testo da verificare (caratteri ASCII).
Output
Restituisci true se è un palindromo, altrimenti false.
Vincoli
0 ≤ lunghezza ≤ 10.000
Esempi
Input:
text = "Racecar"
Output atteso:
expected = True
Input:
std::string text = "Racecar";
Output atteso:
bool expected = true;
Input:
string text = "Racecar";
Output atteso:
bool expected = true;
Spiegazione
In minuscolo, "racecar" si legge uguale in entrambi i sensi.
Input:
text = "hello"
Output atteso:
expected = False
Input:
std::string text = "hello";
Output atteso:
bool expected = false;
Input:
string text = "hello";
Output atteso:
bool expected = false;
Spiegazione
"hello" al contrario è "olleh", che è diverso.
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Ignora tutto ciò che non è una lettera o una cifra prima del confronto.
Suggerimento 2
Muoviti verso il centro da entrambe le estremità, confrontando i caratteri senza distinguere maiuscole e minuscole.
Suggerimento 3
Salta con attenzione punteggiatura e spazi, così non rompono palindrome valide.
Complessità attesa
tempo O(n), spazio aggiuntivo O(1)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.