字符串。
1 #include2 #include 3 4 int visit[130]; 5 char s[1000005]; 6 7 int main() { 8 int n, len; 9 int i, j, k, tmp, l;10 11 while (scanf("%d%*c", &n)!=EOF && n) {12 gets(s+1);13 memset(visit, 0, sizeof(visit));14 len = tmp = 0;15 for (i=k=1; s[i]; ++i) {16 if (visit[s[i]] == 0) {17 ++tmp;18 if (tmp>n && i-k>len)19 len = i - k;20 while (tmp > n) {21 if (--visit[s[k]] == 0)22 --tmp;23 ++k;24 }25 }26 visit[s[i]]++;27 }28 if (i-k > len)29 len = i - k;30 printf("%d\n", len);31 }32 33 return 0;34 }