使用向量,类型为字符串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")