4661: 【GESP2412四级】字符排序
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
小杨有 个仅包含小写字母的字符串 ,小杨想将这些字符串按一定顺序排列后拼接到一起构成字符串 。小杨希望最后构成的字符串 满足:
- 假设 为字符串 的第 个字符,对于所有的 均有 。两个字符的大小关系与其在字母表中的顺序一致,例如 。
小杨想知道是否存在满足条件的字符串排列顺序。
输入
第一行包含一个正整数 ,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数 ,含义如题面所示。
之后 行,每行包含一个字符串 。
输出
对于每组测试数据,如果存在满足条件的排列顺序,输出(一行一个),否则输出(一行一个) 。
样例输入 复制
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"; } }