ধরুন আমাদের ধনাত্মক পূর্ণসংখ্যার একটি তালিকা দেওয়া হয়েছে। আমাদের তালিকাটিকে অবরোহ ক্রমে সাজাতে হবে এবং তারপর একটি স্ট্রিং তৈরি করতে এতে সমস্ত উপাদান যোগ করতে হবে। আমরা যোগ করা স্ট্রিং ফেরত দিই৷
সুতরাং, যদি ইনপুট ইনপুট =[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