sort排序 第四个就是过不去 不知道少考虑了什么 求大佬看看
查看原帖
sort排序 第四个就是过不去 不知道少考虑了什么 求大佬看看
662286
FrankNanthan楼主2022/2/23 15:47
#include <iostream>
#include <algorithm>
using namespace std;

bool cmpstr(string a, string b){
    // 挨个比大小 ,如果一个都遍历完了 都一样,则输出短的在前;
    for (int i = 0; i < min(a.size(), b.size()); ++i) {
        if (a[i] != b[i]) return a[i] > b[i];
    }
    return a.size() < b.size();
//		大佬的写法
//    return a + b > b + a;
}

void M(){
    int n;
    cin>>n;
    string *s = new string[n];
    for (int i = 0; i < n; ++i) cin>>s[i];
    sort(s, s+n, cmpstr);
    for (int i = 0; i < n; ++i) {
        cout<<s[i];
    }
}


int main(){
    M();
    return 0;
}

2022/2/23 15:47
加载中...