0801 - Eliminare Spatii: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
Programul va citi de la tastatură şirul dat. | Programul va citi de la tastatură şirul dat. | ||
==Date de ieșire== | ==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== | ==Restricții și precizări== | ||
Line 14: | Line 18: | ||
==Exemplu 1== | ==Exemplu 1== | ||
;Intrare | ;Intrare<syntaxhighlight> | ||
in vacanta plec la mare | |||
</syntaxhighlight>Ieșire | |||
:Datele de intrare corespund restricțiilor impuse. | |||
:in vacanta plec la mare | :in vacanta plec la mare | ||
==Exemplu 2== | ==Exemplu 2== | ||
;Intrare | ;Intrare<syntaxhighlight> | ||
în v4c4nță pl3c l4 m4r3 | |||
</syntaxhighlight>Ieșire | |||
: | :Datele de intrare nu corespund restricțiilor impuse. | ||
==Rezolvare== | ==Rezolvare== | ||
Line 32: | Line 37: | ||
def conditii(sir): | 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) | return re.match(r"^[a-z ]{0,255}$", sir) | ||
def | 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())) | print(" ".join(sir.strip().split())) | ||
if __name__ == "__main__": | 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> | </syntaxhighlight> |
Latest revision as of 15:23, 5 May 2023
Cerința[edit | edit source]
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[edit | edit source]
Programul va citi de la tastatură şirul dat.
Date de ieșire[edit | edit source]
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[edit | edit source]
- șirul dat va conține cel mult
255
caractere, litere mici ale alfabetului englez și spații
Exemplu 1[edit | edit source]
- Intrare<syntaxhighlight>
in vacanta plec la mare
</syntaxhighlight>Ieșire
- Datele de intrare corespund restricțiilor impuse.
- in vacanta plec la mare
Exemplu 2[edit | edit source]
- Intrare<syntaxhighlight>
în v4c4nță pl3c l4 m4r3
</syntaxhighlight>Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="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>