CSES - ABC-tasapaino

Annettuna on merkkijono, jonka jokainen merkki on A, B tai C. Tehtäväsi on laskea, moniko osajono sisältää yhtä monta A:ta, B:tä ja C:tä.

Esimerkiksi kun merkkijono on CBACBA, vastaus on 5, koska halutut osajonot ovat CBA (kahdesti), BAC, ACB ja CBACBA.

Voit olettaa, että merkkijonon pituus on enintään 10^5.

Python

Toteuta tiedostoon balance.py funktio count, joka antaa osajonojen määrän.

def count(s):
    # TODO

if __name__ == "__main__":
    print(count("CCAABB")) # 1
    print(count("CBACBA")) # 5
    print(count("AAABBC")) # 0

Java

Toteuta tiedostoon Balance.java metodi count, joka antaa osajonojen määrän.

public class Balance {
    public long count(String s) {
        // TODO
    }

    public static void main(String[] args) {
        Balance b = new Balance();
        System.out.println(b.count("CCAABB")); // 1
        System.out.println(b.count("CBACBA")); // 5
        System.out.println(b.count("AAABBC")); // 0
    }
}