2592 - Afis Simetric: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == 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. == Dat...
 
Line 10: Line 10:
* 1 ⩽ n ⩽ 10
* 1 ⩽ n ⩽ 10
* fiecare șir are maximum '''1000''' de caractere
* fiecare șir are maximum '''1000''' de caractere
== Exemplu 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
  3
  3
Line 20: Line 20:
  ana el ea are are are mere pere prune
  ana el ea are are are mere pere prune
<br>
<br>
== Exemplu 2 ==
== Exemplu 2 ==
; Intrare
; Intrare

Revision as of 18:24, 25 December 2023

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


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