电子/半导体行业面试题更新 2026-08-05

请实现一个函数,判断字符串S1中是否包含字符串S2的任意一个全排列子串(即S2的某个排列作为S1的连续子串出现)。

华为HUAWEI前端/移动开发电子/半导体编码实现问题拆解技术原理

考察说明

考察滑动窗口与字符频率计数算法的实现能力

回答思路

  1. 正确理解问题:S1中是否存在S2长度相等的连续子串,且字符频次与S2一致
  2. 使用固定大小滑动窗口遍历S1,窗口长度等于S2长度
  3. 用字符频率计数(如数组或Map)替代全排列枚举,降低复杂度
  4. 处理窗口移动时左端移除字符与右端加入字符的计数更新
  5. 边界情况:S2长度大于S1时直接返回false
  6. 窗口起始位置为S1前len2个位置逐个检查
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。