最长不重复字符子串

ACWing: 61.最长不含重复字符的子字符串

LeetCode: 3.无重复字符的最长子串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int ans = 0;

std::unordered_map<char, int> hash;

for (int i = 0, j = 0; j < s.size(); ++j) {
hash[s[j]]++;
while (hash[s[j]] > 1) {
// i不断前进,直到到了重复字符第一次出现的地方
hash[s[i]]--;
i++;
}
ans = std::max(ans, j - i + 1);
}

return ans;
}
};