CSES - Merkit

Tehtäväsi on muokata annettua merkkijonoa seuraavalla tavalla:

  1. Etsi merkkijonosta ensimmäinen kohta, jossa kaksi vierekkäistä merkkiä ovat yhtäsuuria.
  2. Jos tällaista kohtaa ei ole, lopeta.
  3. Poista nämä kaksi merkkiä merkkijonosta ja korvaa ne yhdellä merkillä, joka on aakkosissa tasan yhtä suurempi kuin poistetut merkit. Kuitenkin jos uusi merkki olisi suurempi kuin z, siitä tulee merkki a.
  4. Palaa takaisin kohtaan 1.

Merkkijono muodostuu merkeistä az ja siinä on enintään 10^5 merkkiä.

Toteuta tiedostoon chars.py funktio solve, joka palauttaa muokatun merkkijonon.

def solve(s):
    # TODO

if __name__ == "__main__":
    print(solve("auto")) # auto
    print(solve("ddqqirr")) # eris
    print(solve("aaaaaa")) # cb
    print(solve("wsstuva")) # xa
    print(solve("zzzzzzzz")) # c
    print(solve("mlkjihgfedcbb")) # n
    print(solve("kkkjjiikjkjiikjjiijkjji")) # mjkjmlki

Selitys: Esimerkiksi merkkijono aaaaaa muuttuu seuraavalla tavalla: aaaaaa \rightarrow baaaa \rightarrow bbaa \rightarrow caa \rightarrow cb