Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

Buna! Cum pot gasi vocalele intre doua consoane in Python? Nu stiu cum sa fac parcurgerea.


sergiou: Imi poti da niste exemple de cuvinte sa vad cum vrei sa gasesti vocalele?

de exemplu, cuvantul castravete. Primele doua consoane sunt 'c' si 's'. Intre ele se afla vocala 'a'. Si faci asta la restul consoanelor.
sikesjack1: E bun exemplul tau, eu vreau o structura scrisa in python care gaseste acel a
sergiou: Sigur. Ma gandesc acum la o rezolvare
sergiou: + cu explicatie
sergiou: Salut. Am gasit o solutie, dar e incompleta.
Codul de mai jos ia doar primele doua consoane dintr-un cuvant.

def esteVocala(c):
return c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u'

cuvant = input();

i = 0;
stanga = 0;
dreapta = 1

while (esteVocala(cuvant[stanga])):
stanga += 1

dreapta = stanga + 1

while (esteVocala(cuvant[dreapta])):
dreapta += 1

lung = dreapta - stanga
i = stanga + 1

while (i < lung):
print("{0}".format(cuvant[i]))
i += 1
print("\n")
sergiou: Sper ca vei gasi o solutie, deoarece mie imi tot da index out of range cand voiam sa parcurg tot cuvantul. Ma mai gandesc si eu sa vad cum se poate rezolva problema
sergiou: Dar ideea principala e sa parcurgi tot cuvantul incepand cu stanga ( 0 ) si dreapta ( 1 ) . Cat timp gasesti o vocala, mergi mai departe cu stanga. Apoi il actualizezi pe dreapta, incepand cu stanga + o pozitie in fata. La fel cauti consoana actualizandu-l pe dreapta. La fel, la un moment dat cel de-al doilea while se opreste. Inseamna ca intre stanga si dreapta exista vocale. Calculam lungimea ( dreapta - stanga ) si afisam toate vocalele de acolo
sergiou: ( daca lungimea da zero, adica dreapta - stanga = 0, inseamna ca nu exista vocale si mergem mai departe. Dar aici apare problema. E nevoie sa ne gandim cum merge. )
sikesjack1: Super, mersi tare mult :)
sergiou: Nicio problema !

Răspunsuri la întrebare

Răspuns de sergiou
1

Răspuns:

Am gasit greseala. L-am eliminat pe "lung" si am modificat putin ultimul while

Tot da index out of range, dar afiseaza corect vocalele.

Anexe:
Alte întrebări interesante