C++ 模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int res = 0;
int l = 0;
int r = 0;
unordered_map<char, int> w;
while (r < s.size()) { // 右边界,一直扩展,直到窗口满足条件
char c = s[r];
w[c]++;
r++;
while (w[c] > 1) {// 左边界,维护一个满足条件的窗口
char t = s[l];
w[t]--;
l++;
}
res = max(res, r - l); // 注意这儿是 r-l
}