মান লিখুন: আমাদের কাছে একটি সংখ্যা n রয়েছে। ব্র্যাকেট সিকোয়েন্স বলতে শুধুমাত্র '(' এবং ')' karakter দিয়ে তৈরি একটি স্ট্রিংকে বোঝায়। একটি বৈধ ব্র্যাকেট সিকোয়েন্স হল এমন একটি সিকোয়েন্স যা মূল ক্যারেক্টারগুলোর মাঝে '1' এবং '+' চিহ্ন বসিয়ে একটি সঠিক গাণিতিক অভিব্যক্তিতে রূপান্তরিত করা যায়। উদাহরণস্বরূপ, "()()" একটি বৈধ সিকোয়েন্স কারণ এখানে 1 বসিয়ে "(1)+(1)" বানানো যায়। সংখ্যা n থেকে আমাদের ২n দৈর্ঘ্যের ঠিক nটি ভিন্ন বৈধ ব্র্যাকেট সিকোয়েন্স বের করতে হবে।
উদাহরণ
যদি ইনপুট হয় n = 4, তবে আউটপুট হবে ["()()()()", "(())()()", "((()))()", "(((())))"]
সমাধানের ধাপসমূহ
for k := 1 থেকে n পর্যন্ত:
for i := 1 থেকে k পর্যন্ত:
"(" প্রিন্ট করুন
for i := 1 থেকে k পর্যন্ত:
")" প্রিন্ট করুন
for i := k+1 থেকে n পর্যন্ত:
"()" প্রিন্ট করুন
নতুন লাইন প্রিন্ট করুন
C++ বাস্তবায়ন
#include <bits/stdc++.h>
using namespace std;
void solve(int n) {
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= k; i++)
cout << "(";
for (int i = 1; i <= k; i++)
cout << ")";
for (int i = k + 1; i <= n; i++)
cout << "()";
cout << endl;
}
}
int main() {
int n = 4;
solve(n);
}
ইনপুট
4
আউটপুট
()()()() (())()() ((()))() (((())))