设置滑动窗口, l l l 维护左窗口 , r r r 维护右窗口 ,利用哈希表统计字母出现次数。
上述操作保证窗口内每个字母最多出现一次 , 符合题意——无重复字符的子串。其中最长子串的长度,即为所求。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
unordered_map<int,int> mp;
int l = 0;
int ans = 0;
for(int r = 0;r<s.size();r++){
mp[s[r]]++;
while(mp[s[r]]>1) mp[s[l++]]--;
ans = max(ans,r-l+1);
}
return ans;
}
};
理解思路很重要!
欢迎读者在评论区留言,作为日更博主,看到就会回复的。
