请实现一个函数,判断字符串S1中是否包含字符串S2的任意一个全排列子串(即S2的某个排列作为S1的连续子串出现)。
考察说明
考察滑动窗口与字符频率计数算法的实现能力
回答思路
- 正确理解问题:S1中是否存在S2长度相等的连续子串,且字符频次与S2一致
- 使用固定大小滑动窗口遍历S1,窗口长度等于S2长度
- 用字符频率计数(如数组或Map)替代全排列枚举,降低复杂度
- 处理窗口移动时左端移除字符与右端加入字符的计数更新
- 边界情况:S2长度大于S1时直接返回false
- 窗口起始位置为S1前len2个位置逐个检查
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。