class Solution {
public:
    int lengthOfLongestSubstring(string str) 
    {
        string win = "";
        int iLenMax = 1;
        for(char &c : str)
        {
            if(win.find(c) == string::npos)
                win += c;
            else
            {
                while(win[0] != c) win.erase(0, 1);
                win.erase(0, 1);
                win += c;
            }
           iLenMax = max(iLenMax, (int)win.length());
        }
        return iLenMax;
    }
};