Tehtäväsi on jakaa merkkijono segmentteihin niin, että jokainen segmentti muodostuu saman merkin toistoista. Segmentit tulee esittää listana, jossa on jokaisen segmentin pituus ja merkki.
Esimerkiksi merkkijonossa aaabbccdddd
on neljä segmenttiä, jotka voidaan esittää listana [(3, 'a'), (2, 'b'), (2, 'c'), (4, 'd')]
.
Toteuta tiedostoon segments.py
funktio find_segments
, jonka parametrina on merkkijono. Funktio palauttaa yllä olevassa muodossa olevan segmenttien listan, jossa jokaista segmenttiä vastaa tuple.
Funktiosi toimintaa testataan suurella määrällä erilaisia merkkijonoja. Jokainen merkkijono muodostuu merkeistä a
–z
ja siinä on 1–100 merkkiä.
def find_segments(data): # TODO if __name__ == "__main__": print(find_segments("aaabbccdddd")) # [(3, 'a'), (2, 'b'), (2, 'c'), (4, 'd')] print(find_segments("aaaaaaaaaaaaaaaaaaaa")) # [(20, 'a')] print(find_segments("abcabc")) # [(1, 'a'), (1, 'b'), (1, 'c'), (1, 'a'), (1, 'b'), (1, 'c')] print(find_segments("kissa")) # [(1, 'k'), (1, 'i'), (2, 's'), (1, 'a')]