Skip to content

Sliding Window

Longest substring without repeating characters

unordered_map<char, int> mp;

        int i = 0;

        int j = 0;

        int length = 0;

        while(j < s.size()) {

            if(mp.find(s[j]) != mp.end() && mp[s[j]] >= i) {

                i = mp[s[j]] + 1;

            }

            mp[s[j]] = j;

            length = max(length, j - i + 1);

            j++;

        }

        return length;