Computer >> 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 chúng tạo thành số lớn nhất. Vì vậy, nếu mảng là [10, 2], thì số lớn nhất sẽ là 210.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Sắp xếp các số trong đó các chữ số có nghĩa lớn hơn đặt chúng lúc đầu, giống như cách sắp xếp các số này. Sau đó, chỉ cần nối các số từ mảng.

Ví dụ

Hãy cùng chúng tôi xem cách 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"