A1038

用一串数拼接成一个数,输出最小的。

思路:使用string和相关的函数。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<algorithm>
 5 using namespace std;
 6 const int maxn=10010;
 7 string str[maxn];
 8 bool cmp(string a,string b){
 9     return a+b<b+a;
10 }
11 int main(){
12     int n;
13     cin>>n;
14     for(int i=0;i<n;i++){
15         cin>>str[i];
16     }
17     sort(str,str+n,cmp);
18     string ans;
19     for(int i=0;i<n;i++){
20         ans+=str[i];
21     }
22     while(ans.size()!=0&&ans[0]=='0'){
23         ans.erase(ans.begin());
24     }
25     if(ans.size()==0) cout<<0;
26     else cout<<ans;
27     return 0;
28 }

 

posted @ 2019-02-17 17:32  老葛  阅读(141)  评论(0编辑  收藏  举报