Tehtäväsi on muokata annettua merkkijonoa seuraavalla tavalla:
- Etsi merkkijonosta ensimmäinen kohta, jossa kaksi vierekkäistä merkkiä ovat yhtäsuuria.
- Jos tällaista kohtaa ei ole, lopeta.
- 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 merkkia. - Palaa takaisin kohtaan 1.
Merkkijono muodostuu merkeistä a–z 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
