llllmz

导航

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

思路就是从头开始找,然后每次在从重复节点的后一个找。

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int i=0,j=0,nowmax=1; 
        int max=1; 
        if(s.size()==0||s.size()==1) return s.size();
        map<char,int> m;
        int count=0;
        while(i<s.size()-1 && j<s.size()){
            j=i+1;
            m[s[i]]=count++;
            while(j<s.size() && m.find(s[j])==m.end()){
                m[s[j++]]=count++;
                nowmax++;
                if(nowmax>max) max=nowmax;
                
            }
            if(j==s.size()){
                break;
            }else{
                i+=m.find(s[j])->second+1;
                m.clear();
                count=0;
                nowmax=1;
            }
            
        }
        return max;
    }
};

结果:

好像是有点惨不忍睹,但是目前追求能过就行。。

posted on 2024-02-24 19:33  神奇的萝卜丝  阅读(20)  评论(0)    收藏  举报