无重复字符的最长子串

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        map<char, int> charMap;
        int start = 0;
        int length = 0;
        int len = s.length();
        int i;
        for (i=0; i<len; i++)
        {
            char ch = s[i];
            if (charMap.find(ch) != charMap.end())
            {
                length = length > i - start ? length : i - start;
                start = start > (charMap[ch] + 1) ? start : charMap[ch] + 1;
                charMap.erase(ch);
            }
            charMap.insert(pair<char, int>(ch, i));
        }
        return length > i -start ? length : i-start;
    }
};
原文地址:https://www.cnblogs.com/qingyujie/p/13258641.html