p1012拼数题解
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(string b,string a)
{return b+a>a+b;}//靈魂在這
int main()
{string a[21];int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1,cmp);for(int i=1;i<=n;i++)cout<<a[i];
}
就是這樣看標記的那一行(想學的慢慢讀完)。利用一個字符串數(shù)組,兩個數(shù)組相加不是數(shù)值相加而是直接相加:樣例123+345=123345.利用這個性質(zhì),將前一項與后一項(123345和345123代表a+b與b+a)相比較,從第一位ascll碼開始,往后比,直到比出一項有大小的,由于這一位在高位,所以在前面幾位相同的情況下這一位決定著兩種組合的大小!于是就出來了。。。。。
轉(zhuǎn)載于:https://www.cnblogs.com/lbssxz/p/10427684.html
總結(jié)
- 上一篇: 王者荣耀战区怎么改?
- 下一篇: 成都欢乐谷额外收费项目