2584 - Insert Invers

From Bitnami MediaWiki
Revision as of 14:12, 14 December 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == Cerinţa == Se dă un șir de caractere care conține cuvinte formate doar din litere mici și mari ale alfabetului englez, separate printr-un spațiu. Să se afișeze cuvintele din șir, fiecare fiind urmat de inversul său. Cuvintele afișate sunt separate printr-un spațiu. == Date de intrare == Programul citește de la tastatură un șir de caractere. == Date de ieşire == Programul va afișa pe ecran cuvintele conform cerinței. == Restricții și precizări == * șir...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se dă un șir de caractere care conține cuvinte formate doar din litere mici și mari ale alfabetului englez, separate printr-un spațiu. Să se afișeze cuvintele din șir, fiecare fiind urmat de inversul său. Cuvintele afișate sunt separate printr-un spațiu.

Date de intrare

Programul citește de la tastatură un șir de caractere.

Date de ieşire

Programul va afișa pe ecran cuvintele conform cerinței.

Restricții și precizări

  • șirul conține maximum 255 de caractere

Exemplul 1

Intrare
ana are mere
Ieșire
Datele introduse corespund restricțiilor impuse.
ana ana are era mere erem


Exemplul 2

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


Rezolvare

<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.isalpha() 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 și a inverselor lor

def afisare_cuvinte_si_inversee(s_afisare):

   cuvinte = s_afisare.split()
   rezultat = []
   for cuvant in cuvinte:
       rezultat.append(cuvant)
       rezultat.append(cuvant[::-1])
   return ' '.join(rezultat)


  1. Verificăm dacă acest script este rulat direct (nu este importat ca modul)

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 și inversele lor
       print(afisare_cuvinte_si_inversee(s))
   # 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>