leetcode-3-无重复字符的最长子串
class Solution {
public:
int lengthOfLongestSubstring(string s) {
if (s.length() == 0) return 0;
int left = 0, right = 1, res = 1, N = s.length();
vector<int> freq(256, 0);
freq[s[left]]++;
while (right < N) {
if (freq[s[right]] != 0) {//当前右边已经存在,不能计算
//res = (right - left) > res ? (right - left) : res;
while (s[left] != s[right]) {
freq[s[left]]--;
left++;
}
freq[s[left]]--;
left++;
freq[s[right]]++;
right++;
}
else {
res = (right - left+1) > res ? (right - left+1) : res;
freq[s[right]]++;
right++;
}
}
return res;
}
};
int main()
{
Solution sol;
string s = "abcdbbsfaweqwersdfb";
cout << sol.lengthOfLongestSubstring(s);
cout<< endl;
return 0;
}