数串
题目描述
设有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 }