2673 - Swap Cuv

De la Universitas MediaWiki

Cerinţa

Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor:

Primul
Ultimul
Al Doilea
Penultimul
...

Date de intrare

Programul citește de la tastatură șirul dat.

Date de ieșire

Programul va afișa pe ecran cate o linie cuvintele în funcție de cerintă.

Restricţii şi precizări

  • propoziția va conține cel mult 255 de caractere

Exemplul 1

Intrare
divide and conquer / devide et impera.
Iesire
Datele de intrare corespund restrictiilor impuse
divide
impera
and
et
conquer
devide


Exemplul 2

Intrare
Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare

import re

def main():
    # Citirea șirului de caractere de la tastatură
    sir = input().strip()

    # Verifică dacă șirul respectă restricțiile
    if len(sir) > 255:
        print("Datele de intrare nu corespund restrictiilor impuse")
        return

    # Afișarea mesajului de confirmare
    print("Datele de intrare corespund restrictiilor impuse")

    # Separarea cuvintelor din șir
    cuvinte = re.findall(r'\b\w+\b', sir)

    # Afișarea cuvintelor în ordinea cerută
    i = 0
    j = len(cuvinte) - 1
    while i <= j:
        if i == j:
            print(cuvinte[i])
        else:
            print(cuvinte[i])
            print(cuvinte[j])
        i += 1
        j -= 1


if __name__ == "__main__":
    main()