题目
学习了字符串相关知识的王大队长在思考一些问题:现在王大队长有一个字符串 ss ,他想找到两个非空字符串 aa and bb ,来满足下面的条件:
字符串 aa 和 bb 都是 ss 的子序列;
对于每个索引 ii, 字符串 ss 的字符 s_is
i
必须恰好属于字符串 aa 或 bb 其中一个;
字符串 aa 必须是字典序 最小的,字符串 bb 则可以是任何可能的字符串;
现在给定字符串 ss, 请打印出任意一组有效的 aa 和 bb.
Input
每个测试包含多个测试用例。第一行包含测试用例的数量 tt (1 \le t \le 10001≤t≤1000). 测试用例的描述如下:
每个测试用例的第一行也是唯一一行包含一个字符串 ss (2 \le |s| \le 1002≤∣s∣≤100 其中 |s|∣s∣ 表示 ss 的长度). 字符串 ss 由小写拉丁字母组成。
Output
对于每个测试用例,打印满足给定条件的字符串 aa 和 bb ,如果有多个答案,请输出任意一个。
代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[105];
int n,i,flag;
scanf("%d",&n);
while(n--){
char min='z'+1;
scanf("%s",a);
int len=strlen(a);
for(i=0;i<len;i++){
if(a[i]<min){
min=a[i];
flag=i;
}
}
printf("%c ",min);
for(i=0;i<flag;i++){
printf("%c",a[i]);
}
for(i=flag+1;i<len;i++){
printf("%c",a[i]);
}
printf("\n");
}
}