生成合法的括號

2021-10-10 03:16:15 字數 773 閱讀 2261

給定乙個數字n,生成包含2n括號的合法序列

n=3[((())), (()()), (())(), ()(()), ()()()]

public listgenerateparenthesis(int n )

private void generateall(char chars, listres,int pos)

return;

}chars[pos]='(';

generateall(chars,res,pos+1);

chars[pos]=')';

generateall(chars,res,pos+1);

}//判斷括號是否合法

private boolean isvaild(char chars) else

if (balance<0) return false;

}return balance==0;

}

/**

* 如果左括號數量不大於 nn,我們可以放乙個左括號。

* 如果右括號數量小於左括號的數量,我們可以放乙個右括號。

* 剪枝操作

*/public listgenerateparenthesis2(int n)

private void backtrack(listres, stringbuilder stringbuilder, int open, int close, int max)

if (openif (close}

合法的括號

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

生成n對括號的所有合法排列

例項 n 3,所有的合法序列 左括號的個數 右括號的個數left個左括號和right個右括號 如果right 0 並且 right left 列印右括號 vector generateparenthesis int n void generate int leftnum,int rightnum,s...

合法括號序列

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