启示:要多用指针,用空间换时间
int lengthoflongestSubstring(char *s) {
int len = 0;
char *end = s;
char *temp;
char addressTable[128] = {NULL};
while(*end) {
temp = addressTable[*end];
addressTable[*end] = end;
if (temp >= s) {
len = end-s > len ? end-s : len;
s = temp + 1 /* 和人的判断是一样的,即不计算s以前的字符 */
}
end++;
}
len = end-s > len ? end-s : len;
return(len);
}