Torna alle sfide
Facile 0 risolte 0% di accettazione

Stringa Palindroma

Verifica se un testo si legge uguale da sinistra a destra e da destra a sinistra.

Cosa imparerai

  • Confrontare i caratteri dalle due estremità
  • Fermarsi appena compare una differenza
  • Gestire stringhe vuote e di un solo carattere

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

Esempio 1
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.

Esempio 2
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.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.