int lengthOfLongestSubstring(char* s) {
int n=strlen(s);
if(n==0){
return 0;
}
int hash[256];
memset(hash,-1,sizeof(hash));
int max_=1; //保存答案
int i=-1,j=0;//i为当前无重复字符串的起始位置-1
for(int j=0;j<n;j++){
if(hash[s[j]]>i){ //如果出现了重复
i=hash[s[j]]; //改变起始位置
}
if(j-i>max_){ //更新max_
max_=j-i;
}
hash[s[j]]=j; //更新最近的s[j]位置
}
return max_;
}