📜 算法伪代码
算法 暴力计数(S, K, c1, c2):
n ← S的长度
cnt ← 0
对于 l ← 0 到 n-K 执行
如果 S[l] = c1 则
对于 r ← l+K-1 到 n-1 执行
如果 S[r] = c2 则
cnt ← cnt + 1
返回 cnt
算法 优化计数(S, K, c1, c2):
n ← S的长度
suffix ← 长度为 n+1 的数组,初始化为0
对于 i ← n-1 到 0 递减 执行
如果 S[i] = c2 则
suffix[i] ← suffix[i+1] + 1
否则
suffix[i] ← suffix[i+1]
cnt ← 0
对于 i ← 0 到 n-K 执行
如果 S[i] = c1 则
cnt ← cnt + suffix[i + K - 1]
返回 cnt