Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Số lớn nhất trong Python


Giả sử có một danh sách các số nguyên không âm, chúng ta phải sắp xếp chúng sao cho tạo thành số lớn nhất có thể. Ví dụ, nếu mảng là [10, 2], số lớn nhất sẽ là 210.

Để giải quyết, chúng ta thực hiện các bước sau:

  • Sắp xếp các số sao cho các chữ số quan trọng nhất lớn hơn đặt ở đầu, theo cách sắp xếp này. Sau đó chỉ cần nối các số từ mảng.

Ví dụ

Xem triển khai sau để hiểu rõ hơn:

from functools import cmp_to_key

class Solution(object):
    def largestNumber(self, nums):
        for i in range(len(nums)):
            nums[i] = str(nums[i])
        nums.sort(key=cmp_to_key(lambda x, y: self.compare(x, y)))
        return "".join(nums).lstrip("0") or "0"

    def compare(self, x, y):
        if x + y < y + x:
            return 1
        elif x + y == y + x:
            return 0
        else:
            return -1

ob1 = Solution()
print(ob1.largestNumber([3, 30, 5, 6, 8]))

Đầu vào

[3,30,5,6,8]

Đầu ra

"865330"