Palindromi sono frasi o parole che si leggono allo stesso modo in avanti e indietro . Mentre un essere umano può semplicemente leggere la frase per accertare se sia o non è un palindromo , un programma per computer deve controllare la frase invertita , e fare confronti in base al valore di ciascuna versione . Poi il programma può decidere o meno di una frase è un palindromo . Palindromo funzione template
Una funzione palindromo controllo di base potrebbe richiedere una frase come argomento , e di controllare quella frase per vedere se si legge in avanti e retromarcia :
bool palindromCheck ( controllo stringa ) per
Questa funzione restituisce un valore booleano , il che significa che restituisca un valore vero o falso a seconda se o meno la frase ha superato il test palindromo .
Invertire la frase < br >
All'interno della funzione , ci deve essere un modo per invertire la stringa . Un programmatore può realizzare questo leggendo la frase argomento in senso inverso, e riporlo in un'altra variabile stringa :
new_phrase stringa ;
int i = ( int ) checking.length ( ) - 1 ;
per (i , i> = 0; i - ) per
{
new_phrase.append ( controllo [ i] ) ; }
Anche se forse non è il metodo più efficiente , questo ciclo for mostra chiaramente ciò che sta accadendo : i loop inizia alla fine della frase " controllo " , e funziona al contrario , aggiungendo ogni personaggio per new_phrase
< . br>
Verifica il palindromo
C + + operatori di stringa includono gli operatori di confronto ( maggiore, minore , uguale ) . Ciò significa che le stringhe possono essere confrontati tanto come valori numerici . Quindi, se il valore della stringa inserita è "radar ", poi il ciclo si inverte la parola e memorizzarlo nella variabile new_phrase . Poi un semplice confronto tra le variabili : .
If ( controllo == new_phrase ) per
restituisce "vero" ( perché entrambe le variabili stringa contiene la parola " radar" ) per
Limitazioni
Il confronto di stringhe funziona solo su stringhe che sono identici . Se un palindromo non è del tutto uguale in avanti e indietro (come ad esempio la frase "Do oche vedere Dio ? "), Allora il confronto fallirà anche attraverso la frase è un palindromo . Alla scoperta di ulteriori palindromi richiede parsing frasi e confronto carattere per carattere , alla ricerca di modelli di parola nella frase rovesciata , piuttosto che un confronto diretto .