Annettuna on kaksi samanpituista merkkijonoa, jotka molemmat koostuvat merkeistä A
ja B
. Tehtäväsi on laskea, moniko ensimmäisen merkkijonon osajono on toisen merkkijonon samassa kohdassa olevan osajonon anagrammi.
Kaiksi merkkijonoa ovat toistensa anagrammeja, jos niissä on jokaista merkkiä yhtä monta. Voit olettaa, että merkkijonojen pituudet on enintään 10^5.
Toteuta tiedostoon abstrings.py
funktio count
, joka ilmoittaa osajonojen määrän.
def count(a, b): # TODO if __name__ == "__main__": print(count("AAA", "BBB")) # 0 print(count("AB", "BA")) # 1 print(count("AA", "AA")) # 3 print(count("ABA", "BAB")) # 2 print(count("AAABBB", "BBBAAA")) # 3 print(count("AABABBBA", "BAABABAB")) # 13
Selitys: Esimerkiksi merkkijonoille AAABBB
ja BBBAAA
kelvolliset osajonot tummennettuina ovat:
AA**AB**BB
BB**BA**AA
A**AABB**B
B**BBAA**A
**AAABBB**
**BBBAAA**
Merkkijonoille AA
ja AA
kaikki osajonot ovat kelvollisia:
**A**A
**A**A
A**A**
A**A**
**AA**
**AA**