使用向量,类型为字符串vector<string> arr,判断这些字符串,是否按照长度、字典顺序排序正确;
设置lsort,csort标志位都为true;
当arr[i-1]>arr[i]时,将csort置为false;注意当使用C语言时,使用strcmp函数进行判断;
当arr[i-1].size()>arr[i].size()时,将lsort置为false;
最后通过分支语句判断应该输出什么。
#include <iostream>
#include<vector>
using namespace std;
int main() {
vector<string> arr;
int n;
cin>>n;
arr.resize(n);
for(auto &s: arr){
cin>>s;
}
bool lsort=true,csort=true;
for(int i=1;i<n;i++){
if(arr[i-1]>arr[i]){
csort=false;
break;
}
}
for(int i=1;i<n;i++){
if(arr[i-1].size()>arr[i].size()){
lsort=false;
break;
}
}
if(lsort&&csort){
cout<<"both"<<endl;
}else if(lsort){
cout<<"lengths"<<endl;
}else if(csort){
cout<<"lexicographically"<<endl;
}else{
cout<<"none"<<endl;
}
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号