社区讨论
0分求调,样例过了。
B4069[GESP202412 四级] 字符排序参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjhc0mu
- 此快照首次捕获于
- 2025/11/04 02:34 4 个月前
- 此快照最后确认于
- 2025/11/04 02:34 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
//判断一个字符串是否有序;
bool check(const string &s){
//cout<<"s is -> "<<s<<"\n";
for(int i=1;i<s.size();i++){
if(s[i-1]>s[i]) return false;
}
return true;
}
bool cmp(const string &s,const string &s1){
int n=s.size(),n1=s1.size();
if(s[0]!=s1[0]) return (s[0]<s1[0]);
else return (s[n]<s1[n1]);
}
string s[101];
int main(){
int n,k,fl[101]={0};
//n是几组数据,k是数据当中有几个字符串;
cin>>n;
bool f=true;
for(int i=1;i<=n;i++){
cin>>k;
for(int j=1;j<=k;j++){
//输入;
cin>>s[j];
}
for(int j=1;j<=k;j++){
//当其中一个单词无序就输出后break;
if(!check(s[j])){
fl[i]=0;
f=false;
break;
}
}
//排序后判断是否有序;
//第一个要头尾最小,第二个比第一个尾大并且尾第二个小,后面类推;
if(f){
sort(s+1,s+k+1,cmp);
string s1="";
for(int l=1;l<=k;l++) s1+=s[l];
fl[i]=check(s1);
}
f=true;
}
for(int i=1;i<=n;i++) cout<<fl[i]<<"\n";
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...