题目
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
思想
滑动窗口:
如: 序列串a b c a a
- left=0 a
- left=0 a b
- left=0 a b c
- left=1
ab c - left=2
a bc - left=3
a b c - left=4
a b ca - left=5
a b c a - left=5
a b c aa
class Solution {
public:
int lengthOfLongestSubstring(string s) {
if(s.size()==0) return 0;
int left=0,maxStr=0;
unordered_set<char> m;
for(int i=0;i<s.size();i++)
{
while(m.find(s[i])!=m.end())//如果有重复值
{
m.erase(s[left]);
left++;
}
maxStr=max(maxStr,i-left+1);
m.insert(s[i]);
}
return maxStr;
}
};