1423 - Vocale Vector
Cerința
Se citesc de la tastatura n elemente ale unui vector alcatuit exclusiv din litere mici ale alfabetului englez. Rearanjati vectorul astfel incat vocalele sa fie plasate pe primele pozitii. Vocalele (si consoanele) isi vor pastra ordinea initiala, de la stanga la dreapta.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n litere mici, separate prin spații.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa componentele vectorului rearanjat, separate prin spatii. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse"
Restricții și precizări
- 1 ≤ n ≤ 4000
- Codurile ASCII ale vocalelor sunt:
- a= 97
- e= 101
- i= 105
- o= 111
- u= 117
Exemplu 1
- Intrare
- 12
- b a e d x y p i m f i c
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- a e i i b d x y p m f c
Exemplu 2
- Intrare
- 5
- h t a k e
- Ieșire
- a e h t k
Exemplu 3
- Intrare
- 4
- B A I A
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Explicație
- Ex. 1: Se iau toate vocalele (a, e, i, i) si se plasează pe primele locuri, în ordinea inițiala, iar consoanele rămase (b, d, x, y, p, m, f, c) se vor așeza după ele, tot în ordinea inițială.
- Ex. 2: Se iau toate vocalele (a, e) și se plasează pe primele locuri, în ordinea inițială, iar consoanele rămase (h, t, k) se vor așeză după ele, tot în ordinea inițială.
Rezolvare
<syntaxhighlight lang="python" line>
- 1423 VocaleVector
def validare(nr_elemente, sir_litere):
if nr_elemente > 4000 or nr_elemente < 0: raise ValueError
for litera in sir_litere: if litera < 'a' or litera > 'z': raise ValueError
if nr_elemente != len(sir_litere): raise ValueError
print("Datele de intrare corespund restrictiilor impuse")
def vocala(litera):
if litera in "aeiou": return True return False
def vocalevector(sir_litere):
sir_vocale = [] sir_consoane = [] for litera in sir_litere: if vocala(litera): sir_vocale.append(litera) else: sir_consoane.append(litera)
for litera in sir_vocale: print(litera, end=" ")
for litera in sir_consoane: print(litera, end=" ")
if __name__ == '__main__':
try: n = int(input("Introduceti numarul n: ")) sir = input("Introduceti sirul: ")
sir = sir.split()
validare(n, sir)
vocalevector(sir)
except ValueError: print("Datele de intrare nu corespund restrictiilor impuse") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>