合法括號個數

2021-10-05 08:44:41 字數 720 閱讀 7439

問題描述

由1對括號,可以組成一種合法括號序列:()。

由2對括號,可以組成兩種合法括號序列:()()、(())。

由4對括號組成的合法括號序列一共有多少種?

如果手算的話,三個的情況有()()()、(())()、()(())、((()))、(()())五種,那麼四個的合法括號的形式就是在三個的基礎上再加乙個括號,可以把()三個括號、三個括號()、(三個括號在裡面)、在三個括號的裡面插入乙個括號的方式的到四個括號的合法方式。

題解:

沒想到遞迴就可以得到結果,我還一直用排列組合計算,失策了

一般需要所有情況並且判斷對錯的使用遞迴是不錯的方法

遞迴可以實現無數層次的for迴圈

#include

#include

using

namespace std;

int n;

int count=0;

char s[

1000];

void

solve

(int l,

int r)

s[l+r]

='('

;solve

(l+1

,r);

//相當於乙個'('可以抵消掉乙個')'

if(l>r)

}int

main()

合法的括號

給定字串,只包含以下括號 and 判斷輸入是否合法。括號匹配必按照要求 and 而不是 and 格式 輸入包含多行,每一行輸入乙個長度不超過80的字串,直到遇到結束符為止。每一行輸入只包含以上括號,如果合法,輸出true,否則false。輸入 輸出 false 解題思路 逐個遍歷,如果遇到左括號就壓...

合法括號序列

合法括號序列 鍵盤上有左括號 右括號 和退格鍵 共三個鍵。牛牛希望按鍵n次,使得輸入的字串恰好乙個合法的括號序列。每按一次左括號 字串末尾追加乙個左括號 每按一次右括號 字串末尾追加乙個右括號 每按一次退格鍵 會刪掉字串的最後乙個字元,特別的,如果字串為空,牛牛也可以按退格,但是什麼都不會發生。輸出...

最長合法括號

給乙個只由 和 組成的字串,找出其中最長的連續合法子串長度。leetcode input output 2 input output 4 input output 4很明顯,可以用動態規劃,我也是這麼想的。構建dp len len dp i j 表示以i開頭,j結尾的子串中最長子串。s表示字串,然後...