Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 가장 큰 수


음수가 아닌 정수 목록이 있다고 가정하면 가장 큰 수를 구성하도록 정렬해야 합니다. 따라서 배열이 [10, 2]이면 가장 큰 수는 210이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 최상위 숫자가 처음에 두는 것보다 큰 숫자를 배열하는 것과 같이 숫자를 배열합니다. 그런 다음 배열의 숫자를 결합하기만 하면 됩니다.

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

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]))

입력

[3,30,5,6,8]

출력

"865330"