Leetcodes Solutions 22 Generate Parentheses
來自專欄 Leetcodes Solutions
匯總
雪之下雪乃:leetcode解題總匯Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
思路1
利用遞歸.
利用兩個數:n還要加多少個(, m表示還要加多少個)
因為左右()個數要相等,所有n-1 則m+1
class Solution{public: vector<string> generateParenthesis(int n){ vector<string> res; addingpar(res, "", n, 0); return res; } void addingpar(vector<string> &v, string str, int n, int m){ if(n == 0 && m == 0){ v.push_back(str); return; } if(m > 0) {addingpar(v, str+")", n, m-1);} if(n > 0) {addingpar(v, str+"(", n-1, m+1);} }} ;
推薦閱讀:
※數據結構3.3
※Linux 內核文件描述符表的演變
※浙江大學-數據結構-小白專場:最小路徑問題-7.1.2
※浙江大學-數據結構-選講旅遊規劃-8.3.2
※浙江大學-數據結構-小白專場:最小路徑問題-7.1.3