HACKING 120% {Hacking, programmazione, computer & molto altro}

[Esercizio] Parola Palindroma!, Ci provo pure io a postare un esercizio!

« Older   Newer »
  Share  
view post Posted on 7/9/2013, 00:27     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


Ecco il testo:
Data una parola, utilizzare un vettore per verificare se quest'ultima è palindroma.
Esempio:
Radar è palindroma (parole che si leggono nello stesso modo dall'inizio alla fine e dalla fine all'inizio).
Buon lavoro!
 
Top
view post Posted on 7/9/2013, 00:57     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Vettore?
Sarebbe una lista?
 
Web  Top
view post Posted on 7/9/2013, 01:00     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


No, ogni cella del vettore corrisponde a una lettera della parola.
Suggerisco di creare un vettore dinamico in modo che la parola può essere di diversa lunghezza.
Altrimenti è sufficiente creare un vettore che contenga una parola di massimo 15 lettere.
Esempio semplice:

Posizione vett: 0 1 2 3 4
Lettere: R A D A R

Trovare l'algoritmo necessario per definire se la parola è palindroma!
Suggerimento:

Usare metodo simile alla ricerca binaria.. :)
 
Top
view post Posted on 7/9/2013, 01:18     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


https://hacking120.blogfree.net/?t=3814296

Quindi questo vale o no? E' vecchio e potrei onelinizzarlo :)
 
Web  Top
RootkitNeo
view post Posted on 7/9/2013, 02:19     +1   -1




C++
CODICE
bool palindroma(string str) {
 int i=0, j=str.size()-1;

 while(i < j) if(str[i++] != str[j--]) return false;
 
 return true;
}
 
Top
view post Posted on 7/9/2013, 13:44     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


Rootkit nero io ho seguito questo metodo:
Usando do-while, se il primo è diverso dall'ultimo ho gia finito perché non può essere palindroma, se è uguale vado avanti restringendo il campo l'ultima "i" deve essere numEL-1.
Però la tua soluzione è più compatta e semplice, nice o_o
 
Top
RootkitNeo
view post Posted on 7/9/2013, 13:49     +1   -1




Si bhe, io mi fermo appena vedo che i due caratteri sono diversi.
Grazie!
 
Top
view post Posted on 7/9/2013, 13:58     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Root, metti che sia una parola di quaranta mila lettere: il tuo fa 20000 uguaglianze prima di ritornare la palindromicità.

Nel mio script crea due parti e guarda se sono uguali, dopo magari li implemento con timeit per dirti quale sia più veloce, ma credo proprio il mio :)
 
Web  Top
view post Posted on 7/9/2013, 14:14     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


Wet se fosse di 20000 lettere, farebbe 20000 uguaglianze solo se è davvero palindroma!
Altrimenti al primo carattere diverso si ferma!
 
Top
view post Posted on 7/9/2013, 14:20     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Si, però in caso di una di 4000000 palindroma, fare 2000000 uguaglianze è un po' lunghino credo.
 
Web  Top
view post Posted on 7/9/2013, 14:22     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


Sì quello sì.. Ma altre soluzioni non me ne vengono in mente!
Comunque ho aumentato la difficoltà nell'altro totpic che ho creato!
In asm! :P
 
Top
view post Posted on 7/9/2013, 14:24     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Non ho mai fatto asm e voglio continuare a ignorarlo per non rovinarmi la vita :asd:

Scherzo, comunque non conosco il linguaggio e non è nei linguaggi da fare in questo periodo. :)
 
Web  Top
view post Posted on 7/9/2013, 14:26     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


Sbagli a ignorarlo..
E' davvero utile per la programmazione di porte seriali e serve davvero tanto a farti ragionare!
Sembra difficile ma una volta che hai capito come usare i FLAG (Le condizioni) diventa tutto semplice!
Pensa che alcune cose sono più semplici da fare in ASM che in linguaggi di alto livello xD
 
Top
view post Posted on 7/9/2013, 14:30     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Lo so, ma preferisco diventare molto bravo in alto livello e poi buttarmi su asm che far tutto da mediocre.
 
Web  Top
view post Posted on 7/9/2013, 14:33     +1   -1

Utente

Group:
Utenti UP
Posts:
43
Reputation:
0
Location:
Kernel.

Status:


Vero.. :) Io sono obbligato a farmi il culo fino in 5a con l'asm ahahaha
 
Top
23 replies since 7/9/2013, 00:27   231 views
  Share