查詢 n 個有效括號序列的 C++ 程式
假設我們有一個數字 n。眾所周知,括號序列是一個僅包含字元“(”和“)”的字串。一個有效的括號序列是一個括號序列,它可以透過在序列的原始字元之間插入字元“1”和“+”來轉換成為一個正確的算術表示式。所以,如果一個括號序列類似於“()()”,這是有效的,因為我們可以像“(1)+(1)”那樣放置 1。從數字 n 開始,我們必須找到長度為 2n 的 n 個完全不同的可能有效括號序列。
所以,如果輸入像 n = 4,那麼輸出將是[“()()()()”,“(()()()”,“((()))()”,“((())))”]
步驟
為了解決這一點,我們將按照以下步驟操作 -
for initialize k := 1, when k <= n, update (increase k by 1), do:
for initialize i := 1, when i <= k, update (increase i by 1), do:
print "("
for initialize i := 1, when i <= k, update (increase i by 1), do:
print ")"
for initialize i := k + 1, when i <= n, update (increase i by 1), do:
print "()"
go to next line示例
讓我們看看以下實現以獲得更好的理解 -
#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
輸出
()()()() (())()() ((()))() (((())))
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP