Forum >> Principianti >> Esercizio confronto elementi di stringhe

Pagina: 1 2 3 Avanti

Buongiorno, ho un problema con questo esercizio: non so proprio come risolverlo. Avevo pensato a dei cicli annidati, ma non so proprio come fare, vi ringrazio in anticipo per l'aiuto, buona giornata
### Esercizio: Scrivi funzione che, prese due stringhe, calcoli quante lettere non ripetute hanno in comune
.Esempio
sequenza1 = "tre tigri"
sequenza1 = "contro tre tigri"
output = 6
def esercizio(sequenza1,sequenza2): return output
sai che non capisco cosa voglia dire l'esercizio in italiano? :question:

sono diventato analfabeta funzionale :D




cioè, perché se confrontate quelle due stringhe dovrebbe risultare 6? mica capito
Scusami ho sbagliato il. L'output dovrebbe essere 5, ovvero: tre tigri e contro tre tigri, hanno in comune 5 lettere, non so se ora mi sono riuscita a spiegare meglio. :)
Scusami ho sbagliato il. L'output dovrebbe essere 5, ovvero: tre tigri e contro tre tigri, hanno in comune 5 lettere, non so se ora mi sono riuscita a spiegare meglio. :)
ma quindi anche: tre e tre delle rispettive stringhe output sarebbe 3 e cosa succede dovrebbe uscire una lista [3,5] oppure 3+5=8?


e poi con il secondo esempio che hai fatto mi fai capire che nel caso le stringhe contenessero una "tigri" e l'altra "tigre" quindi il risultato sarebbe 4?




oppure ancora hai conteggiato le "t"? e in questo caso quindi si dovrebbe conteggiare solo la lettera ripetuta più volte?



--- Ultima modifica di pypy in data 2019-02-22 12:21:57 ---
Allora nell'esempio che ho fatto ho sequenza1="Tre tigri" e sequenza2="contro Tre togri", in questo caso deve uscire un output uguale a 5 poiché ho che le lettere comuni alle due stringhe sono t,r,e,i,g.
Nell'esempio da te riportato deve essere output uguale a 4, poiché hanno in comune t,i,g,r
Io però non capisco che cosa vuol dire che "non sai proprio come risolverlo", perché non so, è veramente ovvio... come faresti con carta e penna? Fai una prova:


scrivi su un pezzo di carta la sequenza "AABBCC" per esempio


e poi sotto scrivi "BCDE", per esempio.

Poi sotto scrivi: "lettere comuni: ..................."


Come fai a trovare le lettere comuni, con carta e penna? Davvero non ci riesci?


Non so, io direi che parti dalla prima lettera della prima sequenza: che lettera è? E' la lettera "A". E ti chiedi: esiste la lettera A nella seconda sequenza? Direi che non esiste, vero? Occhei, quindi passi oltre.

Qual è la lettera successiva della prima sequenza? Così a occhio, mi sembra la "B". Esiste la B nella seconda sequenza? Sì! Eccola! Allora comincia a scrivere "B" nella terza riga, quella della soluzione. E poi passa oltre.

Qual è la lettera successiva? Vediamo un po'... è una "B", vero? Esiste la lettera B nella seconda sequenza? Sì, certo! Ma aspetta però: vedi che abbiamo già scritto la B nella soluzione? Allora non abbiamo bisogno di ripeterla. Passiamo oltre.





Eccetera. Non riesci a impostare una cosa del genere con carta e penna?

Ti ringrazio per l'aiuto, solo che quello che devo fare è un programma generale, quindi in entrata potrebbe esserci qualsiasi sequenza. Il discorso sulla stringa specifica riesco a farlo, solo che non riesco a generalizzare
per generalizzare invece di scrivere:




sequenza1 = "tre tigri"


sequenza2 = "contro tre tigri"




prova a scrivere:





sequenza1 = input("sequenza1?: ")

sequenza2 = input("sequenza2?: ")




così puoi inserire quello che vuoi




Oddio, CERTO che potrebbe esserci in input qualsiasi sequenza... è la NATURA della programmazione: scrivere algoritmi che funzionano a partire da input arbitrari. Ti suggerivo di partire da un esempio qualsiasi e ragionarci sopra, proprio per capire quale ALGORITMO stai applicando (esamina gli elementi uno per uno... confronta... aggiungi alla soluzione... Quelle cose lì, l'algoritmo, capisci? L'algoritmo).


Ma... mi viene un sospetto... ve lo insegnano a scrivere algoritmi con carta e penna? Perché sarebbe un po' la base della programmazione...

Ti ringrazio, ora provo


Pagina: 1 2 3 Avanti



Esegui il login per scrivere una risposta.