int lengthOfLongestSubstring(char* s) {
int maxlen = 0, currlen = 0;
int table[128], i, j, start = 0;
memset(table, 0, sizeof(table)); //将table后面sizeof(table)个字节清零
for (i = 0; s[i] != '\0'; ++i)
{
int num = ++table[s[i]]; //128个ASCII码 table[a]即table[98]
if(num == 2)
{
if (currlen > maxlen){
maxlen = currlen;
}
for(j = start; j < i; ++j){
if (s[j] == s[i]){
table[s[j]] = 1;
start = j+1;
break;
}
else
{
--currlen;
table[s[j]] = 0;
}
}
}
else
++currlen;
}
if (currlen > maxlen)
maxlen = currlen;
return maxlen;
}
LeetCode 3 无重复字符的最长字符串 c语言
最新推荐文章于 2022-07-05 20:46:02 发布