思路就是从头开始找,然后每次在从重复节点的后一个找。
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;
}
};
结果:
好像是有点惨不忍睹,但是目前追求能过就行。。
标签:子串,字符,return,int,max,C++,nowmax,size From: https://www.cnblogs.com/llllmz/p/18031464