题目:
代码(首刷看解析 2024年3月2日):
没能自解的原因是Alpahash.insert(s[right]); 放在for循环开头了,没能处理边界条件。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
// 滑动窗口
int left = 0;
unordered_set<char> Alpahash;
int result = 0;
for (int right = 0; right < s.size(); ++right) {
while (Alpahash.find(s[right]) != Alpahash.end()) {
Alpahash.erase(s[left]);
++left;
}
result = max(result, right - left + 1);
//思考一下为什么insert(s[right])在这里
Alpahash.insert(s[right]);
}
return result;
}
};