4661: 【GESP2412四级】字符排序
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:6
解决:3
题目描述
小杨有 个仅包含小写字母的字符串 ,小杨想将这些字符串按一定顺序排列后拼接到一起构成字符串 。小杨希望最后构成的字符串 满足:
- 假设 为字符串 的第 个字符,对于所有的 均有 。两个字符的大小关系与其在字母表中的顺序一致,例如 。
小杨想知道是否存在满足条件的字符串排列顺序。
输入
第一行包含一个正整数 ,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数 ,含义如题面所示。
之后 行,每行包含一个字符串 。
输出
对于每组测试数据,如果存在满足条件的排列顺序,输出(一行一个),否则输出(一行一个) 。
样例输入 复制
3
3
aa
ac
de
2
aac
bc
1
gesp
样例输出 复制
1
0
0
提示
#include<bits/stdc++.h>
using namespace std;
string s[110];
void bubble_sort(string *a, int n) {
bool flag = true;
while (flag) {
flag = false;
for (int i = 1; i < n; ++i) {
if (a[i] > a[i + 1]) {
flag = true;
string t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
}
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
bubble_sort(s, n);
string t="";
for(int i=1;i<=n;i++){
t+=s[i];
}
int m = t.size();
int fl=1;
for(int i=1;i<m;i++){
if(t[i]<t[i-1]){
fl=0;
break;
}
}
cout<<fl<<"\n";
}
}