Palindrom - array?

Tags:    c++

Hej med jer,

I henhold til koden er der nogen som kan forklare hvad dette stykke kode gør?
if (name != name[name.size()-1-i]) {

Jeg har læst mig frem til at size() funktionen returnere alle elementer i et String, men jeg kan ikke se hvad der helt sker inde i if sætningen. Er name[] et array? Står der så, alle elementer i arrayet (name[]) skal ikke være lig med (!=) arrayet og dens elementer minus 1 minus alle elementer... jeg er meget forvirret.

Fold kodeboks ind/udKode 


Hjælp påskønnes!!







1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
size() returnere længden af strengen, for løkken kører fra i=0 til i=længden af strengen(rimelig dumt hvis du leder efter palindrom).
if sætningen tager det i't bogstav name[ i ] og sammenligner med om det i't sidste bogstav name[ name.size()-1-i ].

[] bruges til at finde bogstavet ved det indeks man skriver mellem dem, indekset starter fra 0 af til længden-1.

den der har kodet det der, har sovet.
1. han kan være helt sikker på at han kun skal igennem halvdelen af strengen for at bevise det et palindrom.

2. for at undgå at lave unødige tildelinger, antager man at man har det ene og prøver at modbevise dette.

3. når man har modbevist det kan man lige så godt break ud af løkken.

4. sørg for at vælge det korteste modbevis, at bevise det tilfælde at det ikke er et palindrom.



Indlæg senest redigeret d. 26.02.2008 23:22 af Bruger #5620
t