题目:
class Solution { //本题采用双指针滑动窗口的方法
public:
int lengthOfLongestSubstring(string s) {
map<char, int> m; //map里面存放的是**每个字符对应的下一个索引**
int result, l=0, r=0;
while(r<s.size()){
if(m.find(s[r])!=m.end()){ //若该字符已经出现,左指针直接跳到窗口中重复字符的下一位。相当于重新开始计算长度
l = max(l, m[s[r]]); //这里max判断不可缺少,因为l指针有可能会比m[s[r]]大,这时候需要l指针不动
}
m[s[r]] = r+1; //存放当前字符的下一个索引
result = max(result, r-l+1);
r++;
}
return result;
}
};
标签:字符,48,map,int,Offer,字符串
From: https://www.cnblogs.com/fly-smart/p/17657902.html