当前位置: 代码迷 >> 综合 >> Leetcode 179. Largest Number (python+cpp)
  详细解决方案

Leetcode 179. Largest Number (python+cpp)

热度:96   发布时间:2023-11-26 06:03:05.0

题目

在这里插入图片描述

解法:自定义排序

排序的时候比较两个数字形成的字符串,将两个字符串前后放置形成不同的串之间比较大小,可以直接得出这两个串在最后形成的字符串的相对位置
python版本

class LargerNumKey(str):def __lt__(x, y):return x+y > y+xclass Solution:def largestNumber(self, nums):largest_num = ''.join(sorted(map(str,num), key=LargerNumKey))return '0' if largest_num[0] == '0' else largest_num

C++版本

class Solution {
    static bool cmp(const int &left, const int &right){
    string s1 = to_string(left);string s2 = to_string(right);return s1 + s2 > s2 + s1;}
public:string largestNumber(vector<int>& nums) {
    sort(nums.begin(),nums.end(),cmp);string ans = "";for(auto num : nums){
    ans += to_string(num);}return ans[0] == '0' ? "0" : ans;}
};
  相关解决方案