मान लीजिए कि गैर-ऋणात्मक पूर्णांकों की एक सूची है, हमें उन्हें इस तरह व्यवस्थित करना होगा कि वे सबसे बड़ी संख्या बनाएं। तो अगर सरणी [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"