3149 - anagrame vocale
Cerința[edit | edit source]
Se citește un cuvânt format din cel puțin două și cel mult zece caractere litere mici distincte care conține cel puțin două vocale. Afișați în ordine lexicografică anagramele cuvântului citit care au proprietatea că încep și se termină cu o vocală.
Date de intrare[edit | edit source]
Programul citește de la tastatură șirul de caractere.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran anagramele cerute, câte una pe un rând.
Restricții și precizări[edit | edit source]
- numărul de caractere ale șirului dat este cuprins între
2
și10
; - cuvântul dat este format din litere mici distincte și conține cel puțin două vocale;
- vocalele sunt
a
,e
,i
,o
,u
;
Exemplul 1[edit | edit source]
Intrare
alin
Ieșire
alni anli ilna inla
Exemplul 1[edit | edit source]
Intrare
arc
consola
Cuvântul trebuie să aibă între 2 și 10 litere mici distincte și să conțină cel puțin două vocale.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def este_anagrama_valida(cuvant):
# Verificăm dacă cuvântul începe și se termină cu o vocală return cuvant[0] in 'aeiou' and cuvant[-1] in 'aeiou'
def genereaza_anagrame(curent, ramase, rezultat):
if not ramase: if este_anagrama_valida(curent): rezultat.append(curent) return
for i in range(len(ramase)): genereaza_anagrame(curent + ramase[i], ramase[:i] + ramase[i+1:], rezultat)
def valideaza_cuvant(cuvant):
# Verificăm restricțiile return 2 <= len(cuvant) <= 10 and len(set(cuvant)) == len(cuvant) and sum(1 for char in cuvant if char in 'aeiou') >= 2
def main():
try: # Citim cuvântul de la tastatură cuvant = input("Introduceți un cuvânt: ")
# Verificăm restricțiile utilizând funcția separată if not valideaza_cuvant(cuvant): print("Cuvântul trebuie să aibă între 2 și 10 litere mici distincte și să conțină cel puțin două vocale.") return
# Inițializăm o listă pentru a stoca anagramele rezultate anagrame = []
# Generăm anagramele cuvântului care încep și se termină cu o vocală genereaza_anagrame(, cuvant, anagrame)
# Sortăm și afișăm anagramele for anagrama in sorted(anagrame): print(anagrama)
except Exception as e: print(f"A intervenit o eroare: {e}")
if __name__ == "__main__":
main()
</syntaxhighlight>