O(n)
int lengthOfLongestSubstring(char * s){
int m[130]={-1};
int ptr=0;
char c;
int maxLen=0;
int len=0;
while((c=s[ptr++])!='\0'){
int idx=(int)c;
if(m[idx]>0){
int diff=ptr-m[idx];
if(diff>len){
len++;
}else{
len=diff;//repeat reset
}
}else{
len++;
}
maxLen=maxLen>len?maxLen:len;
m[idx]=ptr;//update location
}
return maxLen;
}