2592 - Afis Simetric

From Bitnami MediaWiki
Revision as of 18:24, 25 December 2023 by Hotico Iulia Denisa (talk | contribs) (→‎Exemplu 2)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

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

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

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

Restricţii şi precizări

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

Exemplul 1

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

Intrare
-1
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare

<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>