Given a string s, find the length of the longest substring without repeating characters.
Example 1:
Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:
Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
Constraints:
- 0 <= s.length <= 5 * 104
- s consists of English letters, digits, symbols and spaces.
Solution
思路是HashMap和滑动窗口
- 右指针遍历string对应的char array
- 同时用一个hashmap,<字符,对应出现的次数>
- 如果一个字符出现次数==2
- 挪动左指针,知道这个字符的出现次数回归到1
- 每次移动右指针,都更新结果长度