思路
定义一个hashset,两个指针分别指向子串的首尾,hashset存放指针内字符
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int start_pointer=0;
int end_pointer=0;
int output=0;
unordered_map<char,int> total;
while(end_pointer<s.size()){
if(total.find(s[end_pointer])!=total.end() ){
if(start_pointer<total[s[end_pointer]]+1)
start_pointer=total[s[end_pointer]]+1;
total[s[end_pointer]]=end_pointer;
}else
total.insert({s[end_pointer],end_pointer});
//cout<<start_pointer<<" "<<end_pointer<<endl;
if(end_pointer-start_pointer+1>output){
output=end_pointer-start_pointer+1;
}
end_pointer+=1;
}
return output;
}
};