Palindrommar är fraser eller ord som läses på samma sätt framåt och bakåt . Även en människa kan helt enkelt läsa frasen att avgöra huruvida det är en palindrom , behöver en dator för att kolla det omvända meningen , och göra jämförelser baserade på värdet av varje version . Sedan, kan avgöra om en fras är en palindrom . Palindrom Funktion mall
En grundläggande palindrom - funktion för kontroll kan ta en mening som argument , och kontrollera att meningen för att se om den läser framåt och bakåt :
bool palindromCheck ( sträng kontroll ) katalog
Denna funktion returnerar ett booleskt värde , vilket innebär att den ger en sann eller falsk värde baserat på huruvida frasen passerade palindrom testet . Addera att vända fras
Inom funktionen , måste det finnas ett sätt att vända strängen . En programmerare kan åstadkomma detta genom att läsa argumentet frasen i omvänd , och lagra den i en annan sträng variabel :
string new_phrase ,
int i = ( int ) checking.length ( ) - 1 ;
för (i , i> = 0 , I - ) katalog
{
new_phrase.append ( kontroll [ i] ) ;
}
kanske inte den mest effektiva metoden , detta för slinga visar tydligt vad som händer : slingorna börjar i slutet av " kontroll " meningen , och arbetar baklänges , lägga varje tecken att new_phrase
< . br >
Kontrollera Palindrom
C + + strängoperatorer innefatta jämförelser operatörer ( större än, mindre än , lika med) . Detta innebär att strängar kan jämföras ungefär som numeriska värden. Så om den inmatade strängen värdet är " radar " då slingan kommer att vända ordet och förvara den i new_phrase variabeln . Sedan en enkel jämförelse mellan variablerna : .
If ( kontroll == new_phrase ) katalog
kommer tillbaka " true " ( eftersom båda strängvariabler innehåller ordet " radar " ) katalog
Begränsningar
strängjämförelse fungerar bara på strängar som är identiska . Om en palindrom är inte helt lika framåt och bakåt ( t.ex. frasen " Do gäss se Gud ? " ) Då jämförelsen misslyckas även genom frasen är en palindrom . Upptäcka ytterligare palindrom kräver analysera meningar och jämföra tecken för tecken , söker efter ordet mönster i omvänd mening snarare än en direkt jämförelse .