Given a string, find the length of the longest substring without repeating characters.

Example 1:


Input: "abcabcbb" Output: 3 Explanation: The answer is ​​"abc"​​, with the length of 3.


Example 2:


Input: "bbbbb" Output: 1 Explanation: The answer is ​​"b"​​, with the length of 1.


Example 3:


Input: "pwwkew" Output: 3 Explanation: The answer is ​​"wke"​​, with the length of 3. Note that the answer must be a substring, ​​"pwke"​​ is a subsequence and not a substring.


题解:

动态记录上一次不重复点

class Solution {
public:
int lengthOfLongestSubstring(string s) {
int prev = -1, res = 0;
int len = s.length();
vector<int> idx(200, -1);
for (int i = 0; i < len; i++) {
if (idx[s[i]] != -1) {
prev = max(prev, idx[s[i]]);
}
res = max(res, i - prev);
idx[s[i]] = i;
}
return res;
}
};