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

দেওয়া সংখ্যাগুলো থেকে সবচেয়ে বড় সংখ্যা তৈরি করা


এখানে আমরা দেখব কীভাবে দেওয়া সংখ্যাগুলোকে রি-অ্যারেঞ্জ করে সবচেয়ে বড় সংখ্যা তৈরি করা যায়। ধরা যাক {৪৫, ৭৪, ২৩} দেওয়া আছে। প্রোগ্রামটি সবচেয়ে বড় সংখ্যা বের করবে, যা হলো ৭৪৪৫২৩। এখানে প্রতিটি ডিজিটকে না রি-অ্যারেঞ্জ করে পুরো সংখ্যাগুলোকে সাজিয়ে সবচেয়ে বড় সংখ্যা তৈরি করা হয়।

এই সমস্যাটি সমাধানের জন্য আমরা স্ট্রিং সর্টিং ব্যবহার করব। কিন্তু কমপ্যারিজন লজিক ভিন্ন হবে। কমপ্যারিং ফাংশন দুটি সংখ্যা a এবং b নেবে, তারপর সেগুলো কনক্যাটেনেট করে ab এবং ba তৈরি করবে। যেটি বড়, সেটিই বিবেচ্য।

অ্যালগরিদম

compareStrings(a, b)

begin ab := concatenate b with a ba := concatenate a with b compare ba with ab, then return 1 if ba is bigger, otherwise return 0 end getLargest(arr): begin sort the arr with the comparison logic using compareString() for each string s in arr, do print s done end

উদাহরণ

#include #include  #include  #include  using namespace std; int stringCompare(string a, string b) { string ab = a.append(b); string ba = b.append(a); return ab.compare(ba) > 0 ? 1: 0; } void getLargest(vector arr) { sort(arr.begin(), arr.end(), stringCompare); //sort the array for (int i =0; i < arr.size() ; i++ ) cout << arr[i]; } int main() { vector arr; arr.push_back("45"); arr.push_back("74"); arr.push_back("23"); getLargest(arr); }

আউটপুট

744523

  1. পাইথনে দেওয়া কনস্ট্রেইন্ট অনুযায়ী স্ট্রিং A থেকে স্ট্রিং B গঠন করা সম্ভব কিনা তা যাচাই করা

  2. পাইথনে দুটি স্ট্রিংয়ের মিলে যাওয়া ক্যারেক্টার কাউন্ট করা (Count matching characters in pair of strings)

  3. পাইথন প্রোগ্রাম সেট ব্যবহার করে স্ট্রিংয়ে ভাওয়েল কাউন্ট করা

  4. পাইথন প্রোগ্রাম: সেট ব্যবহার করে স্ট্রিং-এ স্বরবর্ণ গণনা (Duplicate)