文字列を指定します.重複文字が含まれていない長男の列の長さを見つけてください.
494 ワード
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int longest_substr(char *s) {
int c[128] = {0};
int longest_len = 0;
int i = 0;
int prev = 0;
while (s[i] != 0) {
int k = c[s[i]];
if (k >= prev && k != 0) {
if (i - prev > longest_len) {
longest_len = i - prev;
}
prev = k;
}
c[s[i]] = i + 1;
i += 1;
}
return MAX(longest_len, i - prev);
}