CSES - Osajonot

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ä az. 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