查找字符串子串 - 算法学习

100 阅读1分钟

描述:字符串s1的排列是字符串s2的子串,比如:ab是cbad的子串,ab不是cbda的子串

解法:滑动窗口

  1. 将s1进行编码,由于子串排列无需考虑顺序,则可用1表示字符,0表示空字符
  2. 故ab编码为数值数组s1Array = [1,1,0,0,0], 每个子串编码为26个字符,此处简化为5个字符
  3. 循环(步长为1个字符)取s2字符串的2个字符进行编码,命名s2Array
  4. 当s1Array 等于 s2Array ,则s1排列是s2的子串

总结:采用统一编码,忽略了字符的顺序

参考资料

Hollis 大神的《2023全新Java面试宝典课程,八股文学习资料》