0%

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int begin{0}, end{0};
int ret{0};
int n = s.size();
unordered_map<char, int> memo;
while(end < n)
{
begin = max(begin, memo[s[end]]); // 我上一步走的这个字母,你要跳到最近的不和我重复的那个位置了,每走一个end都会尝试更新一次begin的位置
ret = max(ret, end - begin + 1);
memo[s[end]] = end + 1; // 记录为+1,表示是当前位置之后的,不然begin跳过来还是那个字母
++end;
}
return ret;
}
};