现在的位置: 首页 > 综合 > 正文

[leetcode]Largest Number

2018年04月08日 ⁄ 综合 ⁄ 共 624字 ⁄ 字号 评论关闭

Given a list of non negative integers, arrange them such that they form the largest number.

For example, given [3, 30, 34, 5, 9], the largest formed number is
9534330.

Note: The result may be very large, so you need to return a string instead of an integer.

bool cmp(const string a, const string b){
      return (a+b) > (b+a);
}
class Solution {
public:

    string tostring(int x){
      if(x == 0) return "0";
      string tmp = "";
      while(x){
        tmp = (char)(x%10+'0') + tmp;
        x /= 10;
      }
      return tmp;
    }
    vector<string>s;
    string largestNumber(vector<int> &num) {
        for(int i = 0; i < num.size(); i++)
            s.push_back(tostring(num[i]));
        sort(s.begin(),s.end(),cmp);
        string ans = "";
        for(int i = 0; i < s.size(); i++)
          if(ans != "" || s[i] != "0")
              ans += s[i];
        return ans == "" ? "0" : ans;
    }
};

抱歉!评论已关闭.