0801 - Eliminare Spatii

De la Universitas MediaWiki

Cerința

Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații.

Să se afişeze şirul obţinut după eliminarea din șir unor spații, astfel încât între cuvinte să fie un singur spațiu și să nu nu existe spații înainte de primul cuvânt și nici după ultimul.

Date de intrare

Programul va citi de la tastatură şirul dat.

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

Pe următorul rând se va afișa şirul transformat corespunzător.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

  • șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații

Exemplu 1

Intrare
    in vacanta plec    la         mare
Ieșire
Datele de intrare corespund restricțiilor impuse.
in vacanta plec la mare

Exemplu 2

Intrare
    în v4c4nță pl3c    l4         m4r3
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0801 Eliminare Spatii
import re


def conditii(sir):
    # Regex care acceptă doar litere din alfabetul englez, caracterul spațiu și are lungimea maximă de 255 de caractere
    return re.match(r"^[a-z ]{0,255}$", sir)


def eliminare_spatii(sir):
    # Funcția strip() elimină spațiile de la începutul și sfârșitul unui șir de caractere.
    # Funcția split() împarte un șir de caractere în funcție de un parametru dat. Dacă nu este dat niciun parametru,
    # șirul este împărțit după caracterul spațiu.
    # Dacă există mai multe spații consecutive, funcția split() le va considera ca un singur spațiu.
    # Funcția join() îmbină elementele unei liste într-un șir de caractere, folosind un parametru dat. În acest caz,
    # parametru dat este spațiu.
    print(" ".join(sir.strip().split()))


if __name__ == "__main__":
    sir = input()

    if not conditii(sir):
        print("Datele de intrare nu corespund restricțiilor impuse.")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")
        eliminare_spatii(sir)