Palindromes er setninger eller ord som leser på samme måte fremover og bakover . Mens et menneske kan bare lese uttrykket å fastslå hvorvidt det er et palindrom , trenger et dataprogram for å sjekke den reverserte setning, og foreta sammenligninger basert på verdien av hver versjon . Så programmet kan avgjøre hvorvidt en setning er et palindrom . Palindrom funksjon Mal
En grunnleggende palindrom - sjekking funksjon kan ta en setning som et argument, og sjekk at dommen for å se om den leser forover og bakover : en
bool palindromCheck ( streng kontroll )
Denne funksjonen returnerer en boolsk verdi , noe som betyr at det vil returnere en sann eller usann verdi basert på hvorvidt uttrykket bestått palindrom test.
Reversere Phrase
Innenfor funksjon, må det være en måte å reversere strengen . En programmerer kan oppnå dette ved å lese argumentet uttrykket i revers, og lagre den i en annen streng variabel : en
streng new_phrase ;
int i = ( int ) checking.length ( ) - 1 ;
for (i , i> = 0 , jeg - )
{
new_phrase.append ( kontroll [ i] ) ;
}
Mens kanskje ikke den mest effektive metoden, dette for loop viser tydelig hva som skjer : løkkene starter i slutten av " kontroll " setning, og fungerer bakover , tilføye hvert tegn til new_phrase
< . br >
Kontrollere Palindrome
C + + streng operatører inkluderer sammenligning operatører ( større enn, mindre enn , lik ) . Dette betyr at strenger kan sammenlignes mye som numeriske verdier. Så hvis den angitte strengen er " radar ", da løkken vil reversere ordet og lagre den i new_phrase variabel. Deretter en enkel sammenligning mellom variablene : .
If ( sjekker == new_phrase )
vil returnere " true" (fordi begge strengvariabler vil inneholde ordet " radar ")
Begrensninger
strengen sammenligning fungerer bare på strenger som er identiske . Hvis en palindrom er ikke helt lik forover og bakover (for eksempel uttrykket " se gjess Gud? ") Så sammenligningen vil mislykkes selv gjennom uttrykket er et palindrom . Oppdage ytterligere palindromes krever analysering setninger og sammenligne tegn for tegn , søker etter ordet mønstre i den reverserte setning i stedet for en direkte sammenligning.