class Solution { public: int lengthOfLongestSubstring(std::string s) { int ml = 0; int left = 0; std::unordered_set<char> win; // 用于存储窗口内的字符 for (int right = 0; right < s.size(); ++right) { char c = s[right]; while (win.find(c) != win.end()) { // 如果当前字符在窗口中,缩小窗口直到不含重复字符 win.erase(s[left]); left++; // 更新左边界,缩小窗口 } win.insert(c); // 将当前字符加入窗口 ml = std::max(ml, right - left + 1); // 更新最大长度 } return ml; } };