0801 - Eliminare Spatii

From Bitnami MediaWiki
Revision as of 15:23, 5 May 2023 by Ardelean Alexandru (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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<syntaxhighlight>
   in vacanta plec    la         mare

</syntaxhighlight>Ieșire

Datele de intrare corespund restricțiilor impuse.
in vacanta plec la mare

Exemplu 2

Intrare<syntaxhighlight>
   în v4c4nță pl3c    l4         m4r3

</syntaxhighlight>Ieșire

Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

<syntaxhighlight lang="python" line="1">

  1. 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)

</syntaxhighlight>