2582 - Secv Elim: Difference between revisions
Andrada378 (talk | contribs) No edit summary |
Andrada378 (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 27: | Line 27: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
s | def elimina_duplicate_consecutive(s): | ||
if len(s) > 255: | |||
print("Eroare: Lungimea șirului depășește 255 de caractere.") | |||
return None | |||
i = 0 | |||
i | |||
print( | while i < len(s) - 1: | ||
if s[i].lower() == s[i + 1].lower(): | |||
c = s[i].lower() | |||
j = i + 1 | |||
while j < len(s) and s[j].lower() == c: | |||
j += 1 | |||
s = s[:i] + s[j:] | |||
i = -1 | |||
i += 1 | |||
return s | |||
if __name__ == "__main__": | |||
input_str = input("Introduceți șirul: ") | |||
result = elimina_duplicate_consecutive(input_str) | |||
if result is not None: | |||
print(result) | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 16:53, 4 January 2024
Cerința[edit | edit source]
Se dă un șir de caractere care conține doar litere mici și mari ale alfabetului englez. Se parcurge șirul de la stânga la dreapta și dacă se întâlnește o secvență de litere alăturate egale, se șterge. Dacă în urma acestei operații se obține o nouă secvență de litere egale, se șterge și ea, ș. a. m. d.
Să se afișeze șirul obținut.
Date de intrare[edit | edit source]
Programul citește de la tastatură un șir de caractere.
Date de iesire[edit | edit source]
Programul va afișa pe ecran șirul obținut.
Restricții și precizări[edit | edit source]
- șirul dat conține maximum 255 de caractere
- nu se face diferență între literele mari și mici.
Exemplu[edit | edit source]
Intrare
aAcboOoBcAXa
Ieșire
AXa
Rezolvare[edit | edit source]
<syntaxhighlight lang="python"> def elimina_duplicate_consecutive(s):
if len(s) > 255: print("Eroare: Lungimea șirului depășește 255 de caractere.") return None
i = 0
while i < len(s) - 1: if s[i].lower() == s[i + 1].lower(): c = s[i].lower() j = i + 1 while j < len(s) and s[j].lower() == c: j += 1 s = s[:i] + s[j:] i = -1 i += 1
return s
if __name__ == "__main__":
input_str = input("Introduceți șirul: ") result = elimina_duplicate_consecutive(input_str) if result is not None: print(result)
</syntaxhighlight>