String(字符串) 比较大小 如果有A+BB+A 则AB
生活随笔
收集整理的這篇文章主要介紹了
String(字符串) 比较大小 如果有A+BB+A 则AB
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目引入:
給定N個整數,那任意順序排列連成一個數,得到的最大的數是多少?
分析:貪心,字典序排序,都不對大小比較也不對,今天我跟別人想了很久絞盡腦汁,各種模擬都失敗了。最后才發現對于倆個數a=313,b=3133。
若a排在b前則構造的數字為3133133,另一種是3133313明顯第二種較大,那么b是排在a前面的。那么也就是說當有N個數的時候,基于這個排序準則排序即可。
那么就會得到最大的排列。
若給定200位的數字,該怎么辦?字符串的怎么辦,按照上述的思想,我們就得到了String a,b;若a+b>b+a,那么應有a排在b前面。
實現代碼如下:
#include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std; vector<string> v; bool cmp(string a,string b) {return a+b>b+a; } int main() {int n;string tem;cin>>n;while(n--){cin>>tem;v.push_back(tem);}sort(v.begin(),v.end(),cmp);for(int i=0,e=v.size();i<e;i++){cout<<v[i];}puts("");return 0; }?
總結
以上是生活随笔為你收集整理的String(字符串) 比较大小 如果有A+BB+A 则AB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌 Chrome 浏览器将推“快速删除
- 下一篇: 图论--拓扑排序--判断一个图能否被拓扑