palindromer er sætninger eller ord , som læser på samme måde frem og tilbage. Mens et menneske kan simpelthen læse sætningen at fastslå , hvorvidt det er en palindrom , et edb- program skal kontrollere omvendt punktum, og foretage sammenligninger baseret på værdien af hver version . Derefter kan programmet afgøre, hvorvidt en sætning er et palindrom . Palindrom Function skabelon
En grundlæggende palindrom - kontrolfunktion kan tage en sætning som et argument , og kontroller, at sætningen for at se om det lyder frem og bak : Hej
bool palindromCheck (string kontrol )
Denne funktion returnerer en boolesk værdi , hvilket betyder, at det vil vende tilbage en sand eller falsk værdi baseret på, hvorvidt udtrykket bestået palindrom test.
vende Phrase < br >
Inden for funktionen , skal der være en måde at vende strengen. En programmør kan opnå dette ved at læse det argument sætning i bakgear, og lagre den i en anden streng variabel : Hej
string new_phrase ,
int i = ( int) checking.length ( ) - 1 ;
for (i , i> = 0; i - )
{
new_phrase.append (eftersyn [i ])
}
måske ikke den mest effektive metode , dette for løkke viser klart, hvad der sker : de sløjfer starter i slutningen af " kontrol " punktum, og arbejder baglæns, tilføjende hvert tegn til at new_phrase
< . br >
Kontrol af Palindrome
C + + string operatører omfatter sammenligning operatører ( større end , mindre end , lig med) . Dette betyder, at strengene kan sammenlignes ligesom talværdier . Så hvis den indtastede streng er " radar" , så sløjfen vende ordet og gemme det i new_phrase variabel. Så en simpel sammenligning mellem variable: .
If ( kontrol == new_phrase )
vil vende tilbage "sande" ( fordi begge string variabler vil indeholde ordet " radar" )
< br >
Begrænsninger
strengsammenligning virker kun på strenge, der er identiske . Hvis palindrom ikke er helt lige frem og bak (såsom sætningen " Må gæs se Gud ?") , Så sammenligningen mislykkes selv gennem sætning er et palindrom . Opdage yderligere palindromer kræver parsing sætninger og sammenligne tegn for tegn , der søger efter ordet mønstre i den omvendte sætning snarere end en direkte sammenligning .