मान लीजिए हमें धनात्मक पूर्णांकों की एक सूची दी गई है। हमें सूची को अवरोही क्रम में क्रमबद्ध करना होगा और फिर एक स्ट्रिंग बनाने के लिए उसमें सभी तत्वों को जोड़ना होगा। हम जुड़े हुए स्ट्रिंग को वापस करते हैं।
इसलिए, यदि इनपुट इनपुट की तरह है =[415, 78, 954, 123, 5], तो आउटपुट 954785415123
होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- फ़ंक्शन को परिभाषित करें cmp() । इसमें l, r
- . लगेगा
- यदि पूर्णांक मान ((l) का स्ट्रिंग प्रतिनिधित्व + (r) का स्ट्रिंग प्रतिनिधित्व)> का पूर्णांक मान ((r) का स्ट्रिंग प्रतिनिधित्व + (l) का स्ट्रिंग प्रतिनिधित्व), तो
- वापसी 1
- अन्यथा,
- वापसी -1
- यदि पूर्णांक मान ((l) का स्ट्रिंग प्रतिनिधित्व + (r) का स्ट्रिंग प्रतिनिधित्व)> का पूर्णांक मान ((r) का स्ट्रिंग प्रतिनिधित्व + (l) का स्ट्रिंग प्रतिनिधित्व), तो
- फ़ंक्शन तुलना के अनुसार सूची इनपुट को क्रमबद्ध करें
- इनपुट में सभी तत्वों को एक स्ट्रिंग में शामिल करें और इसे वापस करें।
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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