📐 子串简写计数

以 c₁ 开头、c₂ 结尾且长度 ≥ K 的子串数量
⚙️ 参数设置
🎬 执行过程
点击“暴力演示”或“优化演示”开始动画
📜 算法伪代码
💪 暴力枚举
⚡ 后缀和优化
// 暴力解法:枚举所有起点和终点 算法 暴力计数(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