-
4 3 abc 4 aaab 6 abccde 3 abb
样例输出
-
YES NO YES
NO
-
#include <stdio.h> #include <stdlib.h> bool IsBeautiful(char *str, int length) { if(str == NULL || length < 3) return false; char c[3]; int count[3] = {0, 0, 0}; int i = 0; for(int j = 0; j < 2; j++){ if(i >= length) return false; c[j] = str[i]; while(i < length && str[i] == c[j]){ count[j]++; i++; } } for( ;i < length;) { c[2] = str[i]; count[2] = 0; while(i < length && str[i] == c[2]) { count[2]++; i++; } if(c[0]+1 == c[1] && c[1]+1 == c[2] && count[0] >= count[1] && count[2] >= count[1]) { return true; } c[0] = c[1]; c[1] = c[2]; count[0] = count[1]; count[1] = count[2]; } return false; } char buffer[10000005]; int main(void) { int tests; int length; //freopen("beautiful_string.txt", "r", stdin); scanf("%d", &tests); while (tests--) { scanf("%d", &length); getchar(); gets(buffer); if(IsBeautiful(buffer, length)) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }
描述
We say a string is beautiful if it has the equal amount of 3 or more continuous letters (in increasing order.)
Here are some example of valid beautiful strings: "abc", "cde", "aabbcc", "aaabbbccc".
Here are some example of invalid beautiful strings: "abd", "cba", "aabbc", "zab".
Given a string of alphabets containing only lowercase alphabets (a-z), output "YES" if the string contains a beautiful sub-string, otherwise output "NO".
输入
The first line contains an integer number between 1 and 10, indicating how many test cases are followed.
For each test case: First line is the number of letters in the string; Second line is the string. String length is less than 10MB.
输出
For each test case, output a single line "YES"/"NO" to tell if the string contains a beautiful sub-string.
提示
Huge input. Slow IO method such as Scanner in Java may get TLE.