首页 > 代码库 > 【HDOJ】2369 Broken Keyboard

【HDOJ】2369 Broken Keyboard

字符串。

 1 #include <cstdio> 2 #include <cstring> 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 }