2582 - Secv Elim: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
Fără descriere a modificării |
||
Linia 13: | Linia 13: | ||
Programul va afișa pe ecran șirul obținut. | Programul va afișa pe ecran șirul obținut. | ||
Rezolvare | Rezolvare<syntaxhighlight lang="python"> | ||
def elimina_duplicate_alaturate(s): | def elimina_duplicate_alaturate(s): | ||
rezultat = [] | rezultat = [] | ||
for char in s: | for char in s: | ||
if not rezultat or char != rezultat[-1]: | if not rezultat or char != rezultat[-1]: | ||
rezultat.append(char) | rezultat.append(char) | ||
else: | else: | ||
rezultat.pop() | rezultat.pop() | ||
return ''.join(rezultat) | |||
return | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
input_string = input("Introduceti sirul de caractere: ") | input_string = input("Introduceti sirul de caractere: ") | ||
rezultat = elimina_duplicate_alaturate(input_string) | rezultat = elimina_duplicate_alaturate(input_string) | ||
print("Sirul obtinut dupa eliminarea duplicatelor consecutive este:", rezultat) | |||
</syntaxhighlight> |
Versiunea de la data 28 decembrie 2023 13:58
Cerinta
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
Programul citește de la tastatură un șir de caractere.
Date de iesire
Programul va afișa pe ecran șirul obținut.
Rezolvare
def elimina_duplicate_alaturate(s):
rezultat = []
for char in s:
if not rezultat or char != rezultat[-1]:
rezultat.append(char)
else:
rezultat.pop()
return ''.join(rezultat)
if __name__ == "__main__":
input_string = input("Introduceti sirul de caractere: ")
rezultat = elimina_duplicate_alaturate(input_string)
print("Sirul obtinut dupa eliminarea duplicatelor consecutive este:", rezultat)