给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
- 示例 1:
-
输入: "abcabcbb"
-
输出: 3
-
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
- 示例 2:
-
输入: "bbbbb"
-
输出: 1
-
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
- 示例 3:
-
输入: "pwwkew"
-
输出: 3
-
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
解题思路:
可以使用滑块思想,像是滑动窗口
1.定义两个坐标指针:fast 和 slow(也可以理解为两个前后指针)
2.fast在前, 一直记录不重复的元素,更新不重复子串长度
3.当 fast 遇到重复元素,则slow开始后移,删除掉fast 坐标前的所有元素(即重复元素前的所有元素,所以在这里并不关心