মান लीজিয়ে আমাদের nums নামে একটি সংখ্যা তালিকা আছে, আমাদের এর ক্রম পুনর্বিন্যাস করে সর্বোচ্চ সম্ভব সংখ্যা তৈরি করতে হবে এবং সেটি স্ট্রিং হিসেবে ফেরত দিতে হবে।
তাহলে, যদি ইনপুট হয় nums = [20, 8, 85, 316], তবে আউটপুট হবে "88531620"।
এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:
- temp নামে একটি অ্যারে সংজ্ঞায়িত করুন।
- nums-এ প্রতিটি আইটেম i-এর জন্য:
- i কে স্ট্রিং হিসেবে temp-এ ইনসার্ট করুন।
- temp অ্যারেটি লেক্সিকোগ্রাফিক সিকোয়েন্স অনুযায়ী সর্ট করুন (দুটি স্ট্রিং a, b-এর জন্য চেক করুন a concatenate b, b concatenate a-র চেয়ে বড় কিনা)।
- temp-এ প্রতিটি স্ট্রিং s-এর জন্য:
- res := res concatenate s
- res ফেরত দিন।
#includeusing namespace std; static bool cmp(string a, string b) { return (a + b) >= (b + a); } string solve(vector & nums) { vector temp; for (int i : nums) { temp.push_back(to_string(i)); } sort(temp.begin(), temp.end(), cmp); string res; for (string s : temp) { res += s; } return res; } int main() { vector v = {20, 8, 85, 316}; cout << solve(v); return 0; }
{20, 8, 85, 316}
88531620