c_cpp 3.没有重复字符的最长子串 - 中 - 2018.6.6

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 3.没有重复字符的最长子串 - 中 - 2018.6.6相关的知识,希望对你有一定的参考价值。

/*
1:cMap[s[I]] 存储当前字段出现的最大 index,初始为 -1
2:pre 为最近的重复字段的 index
3:i - pre 为当前字段与前面字段中出现重复的字段的间隔字符数
*/

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        if (s.length() <= 0) return 0;
        map <char, int>cMap;
        int mmax = 0; 
        int pre = -1;
        for (int i = 0; i < s.length(); i++) cMap[s[i]] = -1;
        for (int i = 0; i < s.length(); i++) {
            pre = max(pre, cMap[s[i]]);
            mmax = max(mmax, i - pre);
            cMap[s[i]] = i;
        }
        return mmax;
    }
};

以上是关于c_cpp 3.没有重复字符的最长子串 - 中 - 2018.6.6的主要内容,如果未能解决你的问题,请参考以下文章

No.3. 无重复字符的最长子串

leetcode刷题3.无重复字符的最长子串

中级算法3. 无重复字符的最长子串

leecode 3. 无重复字符的最长子串

最长不重复子串

javascript [3。没有重复字符的最长子串] #tags:leetcode