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

C++ প্রোগ্রাম: স্ট্রিং সর্ট করার জন্য কত ক্যারেক্টার রিঅ্যারেঞ্জ করতে হবে

মান লিখুন: আমাদের কাছে n ক্যারেক্টার বিশিষ্ট একটি স্ট্রিং S রয়েছে। S-তে শুধু ছোট হাতের ইংরেজি অক্ষর আছে। আমাদের 0 থেকে n পরিসরে একটি k নির্বাচন করতে হবে, তারপর S-থেকে kটি ক্যারেক্টার বেছে নিয়ে যেকোনো ক্রমে পারমিউট করতে হবে। এই প্রক্রিয়ায় বাকি ক্যারেক্টারগুলো অপরিবর্তিত থাকবে। আমরা এই পুরো অপারেশনটি ঠিক একবার করব। S কে বানলা বর্ণানুক্রমে সর্টেড করার জন্য k-এর মান বের করতে হবে।

উদাহরণ

যদি ইনপুট হয় S = "acdb", তবে আউটপুট হবে 3, কারণ 'a' সঠিক জায়গায় আছে এবং বাকি ক্যারেক্টারগুলো রিঅ্যারেঞ্জ করতে হবে।

সমাধানের ধাপসমূহ

n := S এর আকার
d := S
d সর্ট করুন
j := 0
for i := 0 থেকে n-1:
    যদি S[i] != d[i]:
        j++
j রিটার্ন করুন

C++ বাস্তবায়ন

#include <bits/stdc++.h>
using namespace std;

int solve(string S) {
    int n = S.size();
    string d = S;
    sort(d.begin(), d.end());
    int j = 0;
    for (int i = 0; i < n; i++) {
        if (S[i] != d[i])
            j++;
    }
    return j;
}

int main() {
    string S = "acdb";
    cout << solve(S) << endl;
}

ইনপুট

"acdb"

আউটপুট

3
  1. স্ট্রিং-এ ক্যারেক্টার বা অ্যালফাবেটের ফ্রিকোয়েন্সি বের করার C++ প্রোগ্রাম

  2. স্ট্রিংয়ের দৈর্ঘ্য (Length) বের করার C++ প্রোগ্রাম

  3. PHP-এ স্ট্রিং-এ একটি ক্যারেক্টার কতবার আসেছে তা গণনা করার প্রোগ্রাম

  4. পাইথনে দেয়া স্ট্রিং ক্যারেক্টার থেকে 'pizza' শব্দ কতবার তৈরি করা যায় তা গণনা করার প্রোগ্রাম