2592 - Afis Simetric
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
Exemplu 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>