滑动:
class Solution {
public:
int lengthOfLongestSubstring(string s) {
unordered_map<char,int> window;
int left = 0,right = 0;
int res = 0;
while(right < s.size()){
char c = s[right];
right++;
window[c]++;
while(window[c] > 1){
char d = s[left];
left++;
window[d]--;
}
res = max(res,right - left);
}
return res;
}
};
非滑动:
class Solution {
public:
int lengthOfLongestSubstring(string s)
{
if(s.length() == 0)
return 0;
string res;
res += s[0];
int num = res.length();
int maxlen = 1;
for(int i = 1;i < s.length();i++)
{
num = res.length();
for(int j = 0;j < num;j++)
{
if(s[i] == res[j])
{
if(maxlen < num)
maxlen = num;
res.erase(0,j+1);
}
}
res+=s[i];
if(maxlen < res.length())
maxlen = res.length();
}
return maxlen;
}
};