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