2582 - Secv Elim

From Bitnami MediaWiki

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>