0893 - Cuvinte0

From Bitnami MediaWiki
Revision as of 16:16, 26 December 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == Cerinţa == Se dă un șir de caractere format din cuvinte, separate prin spații. Cuvintele conțin doar litere mici ale alfabetului englez. Afișați, în ordine lexicografică, cuvintele distincte din șir. == Date de intrare == Programul citește de la tastatură șirul dat. == Date de ieşire == Programul va afișa pe ecran cuvintele în ordinea cerută, câte un cuvânt pe o linie. == Restricții și precizări == * șirul dat va avea cel mult '''255''' de caractere...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit | edit source]

Se dă un șir de caractere format din cuvinte, separate prin spații. Cuvintele conțin doar litere mici ale alfabetului englez. Afișați, în ordine lexicografică, cuvintele distincte din șir.

Date de intrare[edit | edit source]

Programul citește de la tastatură șirul dat.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran cuvintele în ordinea cerută, câte un cuvânt pe o linie.

Restricții și precizări[edit | edit source]

  • șirul dat va avea cel mult 255 de caractere și va conține cel mult 100 de cuvinte
  • lungimea unui cuvânt este de cel mult 15 caractere

Exemplul 1[edit | edit source]

Intrare
maria are doua pere si ana are doua mere
Ieșire
Datele introduse corespund restricțiilor impuse.
ana
are
doua
maria
mere
pere
si


Exemplul 2[edit | edit source]

Intrare
acesttextaremaimultde15caractere
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. Definim funcția de verificare a valorilor s

def verificare(s_val):

   # Verificăm dacă s respectă restricțiile problemei
   if 1 <= len(s_val) <= 255 and all(c.islower() or c.isspace() for c in s_val):
       # Dacă valorile sunt valide, returnăm True
       return True
   else:
       # Dacă valorile nu sunt valide, ridicăm o excepție
       raise ValueError


  1. Definim funcția pentru afișarea cuvintelor în ordine lexicografică

def afisare_cuvinte(s_afisare):

   # Transformăm șirul în listă de cuvinte
   cuvinte = s_afisare.split()
   # Eliminăm dublurile și ordonăm cuvintele
   cuvinte = sorted(set(cuvinte))
   return cuvinte


if __name__ == '__main__':

   try:
       # Citim șirul de caractere
       s = input("Introduceti sirul de caractere: ")
       # Verificăm dacă datele introduse sunt valide
       if verificare(s):
           # Dacă datele sunt valide, afișăm un mesaj de confirmare
           print("Datele introduse corespund restricțiilor impuse.")
       # Afișăm cuvintele în ordine lexicografică
       for cuvant in afisare_cuvinte(s):
           print(cuvant)
   # Tratăm cazul în care datele introduse nu sunt valide
   except ValueError:
       # Afișăm un mesaj de eroare
       print("Datele introduse nu corespund restricțiilor impuse.")


</syntaxhighlight>