2592 - Afis Simetric: Difference between revisions

From Bitnami MediaWiki
 
Line 21: Line 21:
<br>
<br>


== Exemplu 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
  -1
  -1
Line 27: Line 27:
  Datele de intrare nu corespund restrictiilor impuse
  Datele de intrare nu corespund restrictiilor impuse
<br>
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>

Latest revision as of 18:24, 25 December 2023

Cerinţa[edit | edit source]

Se dau n șiruri de caractere care conțin cuvinte formate doar din litere mici și mari ale alfabetului englez, separate prin câte un singur spațiu.

Să se afișeze un nou șir format din primul cuvânt al fiecărui șir în ordinea citirii, al doilea cuvânt al fiecărui șir în ordinea citirii, etc. Dacă șirurile nu au același număr de cuvinte, se continuă acest proces, până când fiecare șir ajunge la final, tot în ordinea citirii.

Date de intrare[edit | edit source]

Se citește de la tastatură pe prima linie numărul n, iar pe următoarele n linii cele n șiruri de caractere.

Date de ieșire[edit | edit source]

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

Restricţii şi precizări[edit | edit source]

  • 1 ⩽ n ⩽ 10
  • fiecare șir are maximum 1000 de caractere

Exemplul 1[edit | edit source]

Intrare
3
ana are mere
el are
ea are pere prune
Iesire
Datele de intrare corespund restrictiilor impuse
ana el ea are are are mere pere prune


Exemplul 2[edit | edit source]

Intrare
-1
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def main():

   # Citirea numărului de șiruri de la tastatură
   n = int(input().strip())
   # Verificarea dacă numărul de șiruri respectă restricțiile
   if not 1 <= n <= 10:
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   # Citirea șirurilor de la tastatură și separarea lor în cuvinte
   siruri = [input().strip().split() for _ in range(n)]
   # Verificarea dacă șirurile respectă restricțiile
   if any(len(sir) > 1000 or not all(cuvant.isalpha() for cuvant in sir) for sir in siruri):
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   print("Datele de intrare corespund restrictiilor impuse")
   # Crearea unui nou șir format din cuvintele fiecărui șir în ordinea citirii
   sir_nou = []
   for i in range(max(len(sir) for sir in siruri)):
       for sir in siruri:
           if i < len(sir):
               sir_nou.append(sir[i])
   # Afișarea noului șir
   print(' '.join(sir_nou))


if __name__ == "__main__":

   main()

</syntaxhighlight>