मान लीजिए हमें धनात्मक पूर्णांकों की एक सूची दी गई है। हमें सूची को अवरोही क्रम में सॉर्ट करना है और फिर उसमें सभी तत्वों को जोड़कर एक स्ट्रिंग बनाना है। हम जोड़ी गई स्ट्रिंग वापस करते हैं।
इसलिए, यदि इनपुट है input = [415, 78, 954, 123, 5], तो आउटपुट होगा 954785415123।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
cmp()फ़ंक्शन परिभाषित करें। यहl,rलेगा:- यदि
(str(l) + str(r))का पूर्णांक मान(str(r) + str(l))1 लौटाएं - अन्यथा,
-1लौटाएं
- यदि
inputसूची कोcompareफ़ंक्शन के अनुसार सॉर्ट करेंinputमें सभी तत्वों को एक स्ट्रिंग में जोड़ें और वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
from functools import cmp_to_key
def cmp(l, r):
if int(str(l) + str(r)) > int(str(r) + str(l)):
return 1
else:
return -1
def solve(input):
input.sort(key=cmp_to_key(cmp), reverse=True)
return "".join(map(str, input))
print(solve([415, 78, 954, 123, 5]))
इनपुट
[415, 78, 954, 123, 5]
आउटपुट
954785415123