Largest Number
class Solution { public: string largestNumber(vector<int>& nums) { string res; if(!nums.size()) return res; vector<string> s; for(int i=0;i<nums.size();i++) s.push_back(to_string(nums[i])); sort(s.begin(),s.end(),[](string& a,string& b){return (a+b)>(b+a);}); for(int i=0;i<s.size();i++) res+=s[i]; int i=0; while(res[i]=='0'&&res.size()>1) res.erase(0,1); return res; } };
代码中使用到了C++ 11的新特性 lambda函数,可见:http://www.cnblogs.com/slysky/p/3945126.html
string类型特有的对象方法:s.erase(pos,len) 删除从下标pos开始的len个字符
string to_string(int val); // 将一个数值转换为string字符串,属于string类库函数 (#include <string>)
把[first,last)中的元素按照升序排列,排序是不稳定的,可以使用默认的操作符'<'进行比较,也可以自定义比较规则。
comp比较两个元素,并返回比较结果的bool值。
使用sort函数应当声明 #include <algorithm>