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