Ho due stringhe, in una stringa ci sono 20 lettere diverse tra loro, ed in un altra stringa ce ne sono 19.
Vorrei sapere in un modo "smart", possibilmente senza cicli for or while, qual'è la lettera che manca nella seconda stringa.
ricerca lettera mancante
ricerca lettera mancante
Spoiler
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Re: ricerca lettera mancante
Le lettere delle due stringhe sono sparse? Oppure, ad esempio, la prima stringa è "jumoonp" e la seconda è "jumoop"?
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
Re: ricerca lettera mancante
Sono lettere sparse prive di spazio, sono tutte attaccate tra loro.
Spoiler
- Simsure
- Membro
- Messaggi: 223
- Iscritto il: 13/09/2013, 21:54
- Specialità: Programmazione
- Uso: GM:Studio 2
- Località: dietro di te...
- Contatta:
Re: ricerca lettera mancante
Non credo sia proprio possibile senza usare dei cicli,in qualche modo devi per forza controllare ogni lettera prima di poter dire quale manca nella seconda stringa. (in ogni caso per cosi poche lettere non è molto dispendioso per il PC fare un ciclo)
Le due stringhe sono uguali (però forse con le lettere in posizioni diverse),ma in una manca una lettera giusto? Non credo tu possa evitare di fare un ciclo però potresti trovare il modo piu veloce di effettuarne uno,magari salvando le due stringhe su due variabili temporanee,e una ad una vedere le lettere della prima,se quella lettera è anche nella seconda,allora rimuovi la lettera da entrambe le stringe,alla fine ne rimarrà solo una,che non è presente nell'altra,quindi rimarrà l'ultimo carattere nella variabile.
Questa è la prima cosa che mi è venuto in mente sul momento,però probabilmente puoi trovare altri mille modi diversi.
Le due stringhe sono uguali (però forse con le lettere in posizioni diverse),ma in una manca una lettera giusto? Non credo tu possa evitare di fare un ciclo però potresti trovare il modo piu veloce di effettuarne uno,magari salvando le due stringhe su due variabili temporanee,e una ad una vedere le lettere della prima,se quella lettera è anche nella seconda,allora rimuovi la lettera da entrambe le stringe,alla fine ne rimarrà solo una,che non è presente nell'altra,quindi rimarrà l'ultimo carattere nella variabile.
Questa è la prima cosa che mi è venuto in mente sul momento,però probabilmente puoi trovare altri mille modi diversi.
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: ricerca lettera mancante
Se le lettere sono in ordine all'interno di ciascuna stringa, ti basta iterare con un singolo ciclo for, e fermarti non appena l'i-esimo carattere della prima stringa è diverso dall'i-esimo della seconda stringa.jumoonp ha scritto:Ho due stringhe, in una stringa ci sono 20 lettere diverse tra loro, ed in un altra stringa ce ne sono 19.
Vorrei sapere in un modo "smart", possibilmente senza cicli for or while, qual'è la lettera che manca nella seconda stringa.
In alternativa, ogni lettera della prima stringa andrebbe confrontata con tutte le lettere della seconda (due cicli for annidati). Si potrebbero pre-ordinare i due array; oppure si potrebbe fare all'inizio una scansione della seconda stringa per popolare un array di booleani (di lunghezza 27), in cui ciascun elemento indica se l'i-esima lettera è presente o meno. A questo punto, si fa la scansione della prima stringa. Non è necessario confrontare ogni carattere con tutti i caratteri della seconda: basta usare l'array precedentemente popolato per accedere, mediante indice, al booleano che indica se quella lettera è presente o meno.
Chi c’è in linea
Visitano il forum: Nessuno e 150 ospiti