Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

[HW4req] Come ottenere ES da un verso

MRinaudo (3660 points)
22 40 50
in HW4 obbligatorio by (3.7k points)
closed by
Ciao a tutti,

se io ho, per esempio, il seguente verso: "Paperino andò al mare a pescare", che poi trasformo in "paperinoandoalmareapescare", come faccio ad ottenere un lista con tutte le parole ES: ["pa", "pe", "ri", "noa", "ndoa", "lma", "rea", "pe", "sca", "re"] ?

Grazie.

Saluti.
842 views
closed with the note: Risolto.

5 Answers

Best answer
s
stefano.fantauzzi (2260 points)
4 6 17
by (2.3k points)
selected by

Riporto quello che ho scritto nel commento come risposta indipendente, scusami se faccio spam, ma penso sia più facile per tutti da individuare in questo modo, potrebbe essere d'aiuto ad altri.

Puoi anche pensare che il numero di ES non è in fondo altro che il numero di gruppi di vocali consecutive, aumentato di uno nel caso in cui il verso non termini con una vocale.

O equivalentemente è il numero di gruppi di consonanti, aumentato di uno nel caso in cui il verso inizi con una vocale.

Sono solo degli spunti di riflessione, valuta bene tutte le possibilità, potresti guadagnarne in efficienza!

EDIT

Faccio l'esempio che aiuta sempre: 'paperinoandoalmareapescare' ha i seguenti gruppi di vocali --> a,e,i,oa,oa,a,ea,e,a,e che sono in numero 10. Poiché il verso termina con una vocale queste sono esattamente in numero uguale agli ES

'paperinoandoalmareapescarer' ha gli stessi gruppi di vocali ma il numero di ES è 11, in quanto il verso termina con una consonante.

Puoi invertire e fare lo stesso con i gruppi di consonanti ovviamente!

MRinaudo (3660 points)
22 40 50
by (3.7k points)

Ciao stefano.fantauzzi,

ragionando sulla tua risposta, sono riuscito a trovare una soluzione .

Grazie mille! smiley

s
stefano.fantauzzi (2260 points)
4 6 17
by (2.3k points)
Ottimo, credo che tu ne abbia guadagnato molto in efficienza, o almeno così è stato per me!
g
gpdatu (1110 points)
0 0 9
by (1.1k points)
Io ho fatto ragionando in questo modo: scorrendo per  "paperinoandoalmareapescare", se trovo una consonante e la lettera che la precede è una vocale, vuol dire che è appena terminato un ES
MRinaudo (3660 points)
22 40 50
by (3.7k points)

Grazie per la tua risposta gpdatu,

pensi che valga la pena controllare anche la lettera successiva, quindi nella posizione i + 1 ?

Saluti.

g
gpdatu (1110 points)
0 0 9
by (1.1k points)
Non capisco perché dovresti farlo.
s
stefano.fantauzzi (2260 points)
4 6 17
by (2.3k points)
edited by
Puoi anche pensare che il numero di ES non è in fondo altro che il numero di gruppi di vocali consecutive, aumentato di uno nel caso in cui il verso non termini con una vocale.

O equivalentemente è il numero di gruppi di consonanti, aumentato di uno nel caso in cui il verso inizi con una vocale.

Sono solo degli spunti di riflessione, valuta bene tutte le possibilità, potresti guadagnarne in efficienza!

EDIT

Faccio l'esempio che aiuta sempre: 'paperinoandoalmareapescare' ha i seguenti gruppi di vocali --> a,e,i,oa,oa,a,ea,e,a,e che sono in numero 10. Poiché il verso termina con una vocale queste sono esattamente in numero uguale agli ES

'paperinoandoalmareapescarer' ha gli stessi gruppi di vocali ma il numero di ES è 11, in quanto il verso termina con una consonante.

Puoi invertire e fare lo stesso con i gruppi di consonanti ovviamente!
MRinaudo (3660 points)
22 40 50
by (3.7k points)

Pensavo di verificare la lettera nell'indice successivo per vedere se è dello stesso tipo (consonate o vocale) della lettera attuale. Tutto questo, per verificare le lettere dello stesso tipo.

Ma probabilmente non è l'approccio giusto frown.

MRinaudo (3660 points)
22 40 50
by (3.7k points)

Ciao stefano.fantauzzi,

grazie per la tua risposta.

Non avevo pensato a questo approccio, provo ad implementare wink.

Saluti

s
stefano.fantauzzi (2260 points)
4 6 17
by (2.3k points)

Fammi sapere come va a finire, sono curioso! wink

AdSum (16290 points)
9 20 134
by (16.3k points)

un 'elemento sonoro' (ES) è una successione massimale di 1 o più consonanti seguite da 1 o più vocali

Scorri la stringa e seguendo la logica sopra spezzi la stringa

N
NAT (1260 points)
0 0 6
by (1.3k points)
Devi seguire attentamente il ragionamento che ti porta a fare questo: ["pa", "pe", "ri", "noa", "ndoa", "lma", "rea", "pe", "sca", "re"].

Tu già sai che quando trovi una consonante seguita dalla vocale o n vocali crei un elemento di ES.
gusgus (1730 points)
5 8 31
by (1.7k points)

citando proprio il testo dell'esercizio

- un'elemento sonoro' (ES) è una successione massimale di 1 o più consonanti seguite da 1 o più vocali

        - prima tutte le consonanti

        - poi tutte le vocali (aeiouyj)

        - ignorando eventuali caratteri non alfabetici come spazi, numeri e segni di interpunzione 

        - togliendo gli accenti dalle lettere accentate

        - e ignorando la differenza tra maiuscole e minuscole

        NOTA:   fanno eccezione il primo ES di un verso, che può essere composto da sole vocali

                e l'ultimo ES, che può essere composto di sole consonanti

esattamente come dice qui, poi dovrai trovarti tu il metodo più efficacie ed efficiente per farlo