题目链接
C++ 代码
class Solution {
public:
int lengthOfLongestSubstring(string s) {
unordered_map<char, int> heap;
int res = 0;
for (int i = 0, j = 0; i < s.size(); i++)
// 双指针遍历,如果遇到相同的元素就,此时i和j相同,只需要将j位置消去++
// 保证从[i,j]区间内没有重复字母
{
heap[s[i]] ++;
// 如果有遇到重复相同字母 j 就会一直++ 到相同字母位置
while (heap[s[i]] > 1) heap[s[j++]] --;
res = max(res , i - j + 1);
}
return res;
}
};