首页 > 其他 > 详细

1038 Recover the Smallest Number (30分) sort-cmp妙用(用于使字符串序列最小)

时间:2020-08-21 22:12:02      阅读:92      评论:0      收藏:0      [点我收藏+]

题目

https://pintia.cn/problem-sets/994805342720868352/problems/994805449625288704

题意

给一堆字符串,组合,使得到的字符串最小

Sample Input:

5 32 321 3214 0229 87

Sample Output:

22932132143287

思路

啊啊啊啊啊,cmp函数写成return a + b < b + a;的形式,保证它排列按照能够组成的最小数字的形式排列。https://www.liuchuo.net/archives/2303

code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
string num[10007];
bool cmp(string x,string y) {
    return x+y<y+x;//!!!!!!!
}
int main()
{
    int N; cin>>N;
    for(int i=0;i<N;++i) cin>>num[i];
    sort(num,num+N,cmp);
    int f=1;
    for(int i=0;i<N;++i)
    {
        for(int j=0;j<num[i].size();++j)
        {
            if(num[i][j]==‘0‘ && f) continue;
            else {
                f=0;
                cout<<num[i][j];
            }
        }
    }
    if(f) cout<<0;
    return 0;
}

1038 Recover the Smallest Number (30分) sort-cmp妙用(用于使字符串序列最小)

原文:https://www.cnblogs.com/liuyongliu/p/13543296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!