int lengthOfLongestSubstring(char* s) {
int len=0;
char *end=s,*temp;
char *addressTable[128]={NULL};
while(*end){
temp=addressTable[*end];
addressTable[*end]=end;//addressTable[*c] represent the character ‘*c’ 's pointer in origin string
if(temp>=s){
len=end-s>len?end-s:len;
s=temp+1;
}
end++;
}
len=end-s>len?end-s:len;
return len;
}
很精简 没搞懂呀 s代表目前子串的头 temp代表上一次重复的字符位置
leetcode 3. 无重复字符的最长子串
最新推荐文章于 2024-01-11 19:22:57 发布