দ্রষ্টব্য − B থেকে একটি অঙ্ক শুধুমাত্র একবার ব্যবহার করা যেতে পারে।
আসুন এখন বুঝতে পারি −
একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবেইনপুট
A = “1221” B = “1211”
আউটপুট
Maximum value of A possible 2221
ব্যাখ্যা − আমরা এখানে B থেকে 2 নির্বাচন করি এবং এটিকে A-এর প্রথম 1 দিয়ে প্রতিস্থাপন করি। এখানে এটিই একমাত্র পছন্দ কারণ A-এর অন্য কোনো সংখ্যাকে 2 বা 1 দিয়ে প্রতিস্থাপন করলে এর মান বাড়বে না।
ইনপুট
A = “1002” B = “3200”
আউটপুট
Maximum value of A possible 3202
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
A-এর প্রতিটি সংখ্যা B এর থেকে কম হলে B এর একটি সংখ্যা দিয়ে প্রতিস্থাপিত হবে।
-
স্ট্রিং B-কে আরোহী ক্রমে সাজান।
-
বাম দিক থেকে A অতিক্রম করা শুরু করুন।
-
এখন ডান দিক থেকে B অতিক্রম করুন।
-
A-তে অঙ্কটি B এর সাথে প্রতিস্থাপন করুন যদি এটি ছোট হয় এবং A এ ইনক্রিমেন্ট পয়েন্টার এবং B এ হ্রাস পয়েন্টার।
উদাহরণ
#include <bits/stdc++.h> using namespace std; // Function to return the maximized value of a string valueup(string str1, string str2){ // Sort digits in ascending order sort(str2.begin(), str2.end()); int len1 = str1.length(); int len2 = str2.length(); int j = len2 - 1; for (int i = 0; i < len1; i++) { // If all the digits of b consumed if (j < 0) break; if (str2[j] > str1[i]) { str1[i] = str2[j]; j--; //once digit used } } return str1; } // Driver code int main(){ string a = "1204"; string b = "4521"; cout << valueup(a, b); return 0; }
আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −
5424