class Solution {
public:
int lengthOfLongestSubstring(string s) {
int len =0;
int res = 0;
unordered_map<int, int> hash;
int left = 0;
for(int i = 0; i <s.length();i++){
// if(hash.count(s[i]) != 0){ //需要擦除原来hash中一些元素
while(hash.count(s[i]) != 0){
res=max(res, len);
len = 0;
hash.erase(s[left]);
}
hash[s[i]] = i;
len++;
}
return res;
}
};
class Solution {
public:
int lengthOfLongestSubstring(string s) {
if(s.size() == 0) return 0;
unordered_set lookup;
int maxStr = 0;
int left = 0;
for(int i = 0; i < s.size(); i++){
while (lookup.find(s[i]) != lookup.end()){
lookup.erase(s[left]);
left ++;
}
maxStr = max(maxStr,i-left+1);
lookup.insert(s[i]);
}
return maxStr;
}
};