数串

题目描述
  设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
  如:n = 3时,3个整数13、312、343,连成的最大整数为34331213。
  如:n = 4时,4个整数7、13、4、246,连接成的最大整数为7424613。
输入描述
  有多组测试样例,每组测试样例包含两行
  第一行为一个整数N(N <= 100)
  第二行包含N个数(每个数不超过1000,空格分开)。
输出描述
  每组数据输出一个表示最大的整数。
输入样例

2
12 123
4
7 13 4 246

输出样例

12312
7424613

测试代码

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 #include <algorithm>
 5 
 6 using namespace std;
 7 
 8 int main(void)
 9 {
10     int _nCount = 0;
11     while (cin >> _nCount)
12     {
13         vector<string> _vecStrings(_nCount);
14 
15         for (int _i = 0; _i < _nCount; _i++)
16         {
17             cin >> _vecStrings[_i];
18         }
19 
20         sort(_vecStrings.begin(), _vecStrings.end(),
21             [](const string& strA_, const string& strB_)
22             {
23                 return (strA_ + strB_) > (strB_ + strA_);
24             }
25         );
26 
27         for (auto& str_ : _vecStrings)
28         {
29             cout << str_;
30         }
31     }
32 
33     return 0;
34 }

 

posted @ 2017-10-02 19:01  新生代黑马  阅读(676)  评论(0编辑  收藏  举报