|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Addirittura
![]() ![]() In effetti la mia intenzione era fargli vedere una versione alternativa senza stare ad ammattire con indici ed indicini. Ultima modifica di cionci : 14-01-2008 alle 09:33. |
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Il codice postato è troppo incasinato, hai fatto la ricorsione da quanto ho capito, quindi...
Io la farei così (pseudocodice): Codice:
bool palindroma(char* str) { if(length(str)<=1) return true; else if(str[0] == str[length(str)-1]) return palindroma(substr(str, 1, length(str)-1)); else return false; } 0 1 2 3 A N N A lenght=4 str[0]=A, str[length(str)-1]=str[3]=A splitta 0 1 N N lenght=2 str[0]=N, str[length(str)-1]=str[1]=N splitta stringa vuota lenght=0 ==> return true, risale l'albero della ricorsione e torna true... Codice:
bool paliter(char* inizio, char* fine) { while(*inizio++==*fine--); return --inizio>fine; } bool palrec(char* inizio, char* fine) { return inizio>=fine?1:(*inizio==*fine)?pali(inizio+1,fine+1):0; } |
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
lo so mi diverto male
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:20.