BAsiC substring problem

2 secs 1024 MB
stoq's icon stoq

問題文

英大文字から成る文字列 ss が与えられます。

ss の空でない連続する部分文字列のうち、それに含まれる A , B , C の個数が全て等しい(0個でもよい)ものの個数を求めてください。

ただし文字列として同じでも取り出した位置が異なるものは区別します。

制約

  • 1s2×1051 \leq |s| \leq 2 \times 10^5
  • ss は英大文字から成る

入力

s

出力

条件を満たす部分文字列の個数を出力してください。

サンプル

入力1
BASIC
出力1
4

"S", "I", "SI", "BASIC"が条件を満たします。

入力2
ABCABC
出力2
5

"ABC", "BCA", "CAB", "ABC", "ABCABC"が条件を満たします。 同じ文字列でも取り出した位置が異なる場合は区別します。

入力3
ABCDBCADBCDABCDACBDACBCDCDCABCCABBACBAD
出力3
83

Submit


Go (1.21)