牛牛有个正整数且每个正整数最大不超过1000,他将它们拼成一排,组成一个最大的整数,他想知道能组成的最大的数字是多少?
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 返回这n个数能够组成的最大的数字是多少 * @param s string字符串vector * @return string字符串 */ string formMaxNumber(vector<string>& s) { // write code here sort(s.begin(),s.end(), [&](string a, string b){ return a+b>b+a; }); string res; for(int i = 1;i<=s.size();i++) res+=s[i-1]; return res; } };
bool static compare_string_by_number(const string &v1,const string &v2){ return v1+v2>v2+v1; } class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 返回这n个数能够组成的最大的数字是多少 * @param s string字符串vector * @return string字符串 */ string formMaxNumber(vector<string>& s) { // write code here string res=""; if(s.size()==0) return res; sort(s.begin(),s.end(),compare_string_by_number); for(auto &it:s) res+=it; return res; } };