কম্পিউটার টিউটোরিয়াল

সংখ্যা তালিকা থেকে সর্বোচ্চ লেক্সিকোগ্রাফিক সংখ্যা তৈরি (C++ প্রোগ্রাম)

মান लीজিয়ে আমাদের 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 ফেরত দিন।
C++ প্রোগ্রাম উদাহরণ
#include 
using 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
  1. ডেসিমেল নম্বরকে অক্টাল (Octal) এ কনভার্ট করার C++ প্রোগ্রাম

  2. C++ প্রোগ্রাম: তিনটি সংখ্যার মধ্যে বড়টি খুঁজে বের করা

  3. পাইথনে দুটি লিস্ট থেকে সর্বোচ্চ ডিস্ট্যান্স পেইর বের করার প্রোগ্রাম

  4. পাইথনে দिये गये সংখ্যা গুলো থেকে সম্ভাব্য সর্বোচ্চ সংখ্যা বানানো