2584 - Insert Invers

De la Universitas MediaWiki

Cerinţa

Se dă un șir de caractere care conține cuvinte formate doar din litere mici și mari ale alfabetului englez, separate printr-un spațiu. Să se afișeze cuvintele din șir, fiecare fiind urmat de inversul său. Cuvintele afișate sunt separate printr-un spațiu.

Date de intrare

Programul citește de la tastatură un șir de caractere.

Date de ieşire

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

Restricții și precizări

  • șirul conține maximum 255 de caractere

Exemplul 1

Intrare
ana are mere
Ieșire
Datele introduse corespund restricțiilor impuse.
ana ana are era mere erem


Exemplul 2

Intrare
99573483
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare

# Definim funcția de verificare a valorilor s
def verificare(s_val):
    # Verificăm dacă s respectă restricțiile problemei
    if 1 <= len(s_val) <= 255 and all(c.isalpha() or c.isspace() for c in s_val):
        # Dacă valorile sunt valide, returnăm True
        return True
    else:
        # Dacă valorile nu sunt valide, ridicăm o excepție
        raise ValueError


# Definim funcția pentru afișarea cuvintelor și a inverselor lor
def afisare_cuvinte_si_inversee(s_afisare):
    cuvinte = s_afisare.split()
    rezultat = []
    for cuvant in cuvinte:
        rezultat.append(cuvant)
        rezultat.append(cuvant[::-1])
    return ' '.join(rezultat)


if __name__ == '__main__':
    try:
        # Citim șirul de caractere
        s = input("Introduceti sirul de caractere: ")

        # Verificăm dacă datele introduse sunt valide
        if verificare(s):
            # Dacă datele sunt valide, afișăm un mesaj de confirmare
            print("Datele introduse corespund restricțiilor impuse.")

        # Afișăm cuvintele și inversele lor
        print(afisare_cuvinte_si_inversee(s))

    # Tratăm cazul în care datele introduse nu sunt valide
    except ValueError:
        # Afișăm un mesaj de eroare
        print("Datele introduse nu corespund restricțiilor impuse.")