Tehtäväsi on laskea, montako erilaista osajonoa annetussa merkkijonossa on.
Esimerkiksi merkkijonossa abab
erilaiset osajonot ovat a
, b
, ab
, ba
, aba
, bab
ja abab
, joten haluttu vastaus on 7.
Toteuta tiedostoon substrings.py
funktio count_substrings
, joka laskee parametrina annetun merkkijonojen erilaisten osajonojen määrän.
Funktiota testataan eri tilanteissa, joissa merkkijonon pituus on enintään 20 merkkiä ja se muodostuu merkeistä a
–z
. Funktion tulee toimia tehokkaasti kaikissa tällaisissa tapauksissa.
def count_substrings(string): # TODO if __name__ == "__main__": print(count_substrings("aaaa")) # 4 print(count_substrings("abab")) # 7 print(count_substrings("abcd")) # 10 print(count_substrings("abbbbbb")) # 13 print(count_substrings("aybabtu")) # 26 print(count_substrings("saippuakauppias")) # 110