题目
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
解题
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int max_len = 0;
unordered_map<char, int> letter_map;
for (int start = 0, end = 0;end < s.length();end++){
if (!letter_map.count(s[end])) {
max_len = max_len > (end - start + 1) ? max_len : (end - start + 1);
}
else {
for (int i = start;i < letter_map[s[end]];i++){
letter_map.erase(s[i]);
}
start = letter_map[s[end]] + 1;
}
letter_map[s[end]] = end;
}
return max_len;
}
};