Leetcodes Solutions 22 Generate Parentheses

Leetcodes Solutions 22 Generate Parentheses

來自專欄 Leetcodes Solutions

匯總

雪之下雪乃:leetcode解題總匯?

zhuanlan.zhihu.com圖標

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

TAG:演算法 | 數據結構 | 編程 |