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