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

অতিরিক্ত ব্র্যাকেট সরিয়ে স্ট্রিং ব্যালেন্স করা C++-এ

স্ট্রিং হল ক্যারেক্টরের একটি অ্যারে। এই সমস্যাতিতে আমাদের একটি স্ট্রিং দেওয়া থাকবে যাতে ওপেনিং এবং ক্লোজিং ব্র্যাকেট রয়েছে। আমাদের এই স্ট্রিংটি অতিরিক্ত ব্র্যাকেট সরিয়ে ব্যালেন্স করতে হবে।

উদাহরণ:

Input : ")Tutor)ials(p(oin)t(...)"
Output : "Tutorials(p(oin)t(...))"

এটি সমাধান করতে স্ট্রিং ট্রাভার্স করে মিলে যাওয়া ব্র্যাকেট চেক করব। অমিলিত ক্লোজিং ব্র্যাকেটগুলো বাদ দিব।

অ্যালগরিদম

Step 1: স্ট্রিং বাম থেকে ডানে ট্রাভার্স করুন।
Step 2: ওপেনিং ব্র্যাকেট '(' পাওয়া গেলে প্রিন্ট করুন এবং কাউন্ট বাড়ান।
Step 3: ক্লোজিং ব্র্যাকেট ')' পাওয়া গেলে শুধু প্রিন্ট করুন যদি কাউন্ট > 0 হয়, এবং কাউন্ট কমান।
Step 4: ব্র্যাকেট ব্যতীত সকল ক্যারেক্টার প্রিন্ট করুন।
Step 5: শেষে ক্লোজিং ব্র্যাকেট ')' যোগ করে কাউন্ট ০ করুন।

উদাহরণ কোড

#include <iostream>
#include <string.h>
using namespace std;

void balancedbrackets(string str) {
    int count = 0, i;
    int n = str.length();
    for (i = 0; i < n; i++) {
        if (str[i] == '(') {
            cout << str[i];
            count++;
        } else if (str[i] == ')' && count != 0) {
            cout << str[i];
            count--;
        } else if (str[i] != ')')
            cout << str[i];
    }
    if (count != 0)
        for (i = 0; i < count; i++)
            cout << ")";
}

int main() {
    string str = ")Tutor)ials(p(oin)t(...)";
    cout << "Original string : " << str;
    cout << "\nBalanced string : ";
    balancedbrackets(str);
    return 0;
}

আউটপুট

Original string : )Tutor)ials(p(oin)t(...)
Balanced string : Tutorials(p(oin)t(...))
  1. N কাটা দিয়ে বৃত্তের টুকরোর সংখ্যা গণনা C++-এ

  2. C++-এ দুটি স্ট্রিং-এ কমন সাবসিকোয়েন্স (Common Subsequence) গণনা

  3. C++-এ দুটি সংখ্যা ভাগ করে দশমিকের পরের ডিজিটের সংখ্যা গণনা

  4. C++-এ একই প্রতিবেশী বিশিষ্ট অক্ষর গণনা