class Solution {
private:
unordered_map<char, int> window;
public:
int lengthOfLongestSubstring(string s) {
int left = 0, right = 0, len = 0;
while (right < s.size())
{
char c = s[right++];
window[c]++;
while (window[c] > 1)
{
char d = s[left++];
window[d]--;
}
if (right - left > len)
len = right - left;
}
return len;
}
};