n個の正の整数が設けられ、それらを一列に接続し、最大の複数の整数を構成する.
2683 ワード
タイトルの説明
n個の正の整数が設けられ、それらを一列に接続し、最大の複数の整数を構成する.例えば、n=3の場合、3つの整数13312343、連結された最大整数は34331213である.例えば、n=4の場合、4つの整数7,13,4246が接続された最大整数は7424613である.
説明を入力:
複数組の試験サンプルがあり、各組の試験サンプルは2行を含み、第1の動作は1つの整数N(N<=100)であり、第2の行はN個の数(各数が1000を超えず、スペースが分かれている)を含む.
出力の説明:
データのセットごとに最大を表す整数を出力します.
例1
入力
2
12 123
4
7 13 4 246
しゅつりょく
12312
7424613
// A+B>B+A A>B
#include
#include
using namespace std;
bool campare(string i, string j)
{
return (i+j) > (j+i);
}
int main()
{
int n;
while(cin >> n)
{
vector<string> tmp(n, "");
for(int i=0; icin >> tmp[i];
}
sort(tmp.begin(), tmp.end(), campare); // campare i j
for(int i=0; icout << tmp[i];
}
cout << endl;
}
}
1つの書き方:
bool campare(string i, string j)
{
return (i+j) > (j+i);
}
sort(tmp.begin(), tmp.end(), campare); // campare i j
もう1つの書き方:
sort(sArray.begin(), sArray.end(), [](string s1, string s2){
return (s1+s2) > (s2+s1);
});
https://www.nowcoder.com/profile/5536239/codeBookDetail?submissionId=28949899