ধরুন অ-ঋণাত্মক পূর্ণসংখ্যার একটি তালিকা আছে, আমাদের সেগুলিকে এমনভাবে সাজাতে হবে যাতে তারা বৃহত্তম সংখ্যা তৈরি করে। সুতরাং যদি অ্যারেটি [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"