1. 无重复字符的最长子串
    给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

最开始写成模拟了,后来想了一下,这个是滑动队列,很久之前写过,写不太懂了
大概就记得维护一个l到r的一个队列,大概就是进来先放当前的这个i这个值
如果重复了,那就弹队头,l++
然后每次进来先放,然后r++
没啥问题

class Solution {
public:
map<char, int> mp;
int lengthOfLongestSubstring(string s) {
if (s.size() == 0) return 0;
int l = 0, r = 0, res = 1;
mp[s[l]] ++;
for (int i = 1; i < s.size(); i ++ ) {
mp[s[i]] ++ ; r ++ ;
// cout << i << “ “ << mp[s[r]] << endl;
while (mp[s[r]] > 1 && l < r) mp[s[l ++ ]] –;
res = max(res, r - l + 1);
// cout << s[i] << “ “ << l << “ “ << r << endl;
}
return res;
}
};