B - ACfun
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Status
Problem Description
As a former ACMer, “AC” is a special abbreviated word which can bring much pleasure to me. Sometimes it means everything.
This problem is about “AC”.
One day, I write a long string S on the paper which contains “A” and “C”. Now I want to find a lexicographic minimum string T satisfied that T is distinct with all substring of S.
Input
The first line of input file contains an integer T indicating the number of case.
In each test case:
Input a string S consist of “A” and “C”. The length of S is not large than 100.
Output
For each test case:
You should output the string T meet the condition.
Sample Input
1
ACAC
Sample Output
AA
题目大意:给出一个只含有A和C的字符串,求一个在所有子串中都没出现过的字典序最小的字符串
分析:强调字典序这个概念,比如,AAA小于AC。最优秀的做法就是在给定的字符串上枚举最长的连续A串,然后你只要比它多输出一个就可以了。
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
int kase;
scanf("%d", &kase);
while(kase--) {
char s[110];
scanf("%s", s);
int len = strlen(s);
int p = 0, t = 0;
for(int i = 0; i < len; i++) {
if(s[i] == 'A') p++;
else p = 0;
t = max(t, p);
}
t++;
while(t--)
printf("A");
printf("\n");
}
return 0;
}