题解
双指针法
用一个哈希表或者set记录当前子字符串中出现的字符,一旦有重复的字符进来,就去掉首字母,知道没有重复。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int max_len = 0;
set<char> table;
for(int i = 0; i < s.size(); i++) {
int j = i + table.size();
while(j < s.size() && !table.count(s[j])) {
table.insert(s[j]);
j++;
}
if(j-i > max_len) {
max_len = j-i;
}
table.erase(s[i]);
}
return max_len;
}
};