滑动窗口
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
int lengthOfLongestSubstring(string s) {
if (s.empty()) {
return 0;
}
// 最少单个字符
std::unordered_map<char, int> hash;
int left = 0, right = 0;
int res = 1;
while (right < s.size()) {
++hash[s[right]];
while (hash[s[right]] > 1) {
if (hash.count(s[left])) {
--hash[s[left]];
}
++left;
}
++right;
res = std::max(res, right - left);
}
return res;
}
};