public:
int lengthOfLongestSubstring(string s) {
map<char,int> stringMap;
int i=0;
int length=0;
while(char ch=s[i]){
if(!stringMap.count(ch)){
stringMap.insert(pair<char,int>(ch,i));
i++;
}else{
if(stringMap.size()>length){
length=stringMap.size();
}
i=stringMap[ch];
i++;
stringMap.clear();
}
}
if(stringMap.size()>length){
length=stringMap.size();
}
return length;
}
};
超时。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int table[256]={0};
int length=0;
int i=0;
int j=0;
while(j<s.length()){
char ch=s[j];
if(table[ch]==0){
j++;
table[ch]=1;
}else{
if(j-i>length){
length=j-i;
}
while(table[ch]!=0){
table[s[i]]=0;
i++;
}
table[s[j]]=1;
j++;
}
}
if(j-i>length){
length=j-i;
}
cout<<i<<j;
return length;
}
};