leetcode 22:Generate Parentheses(15-10-9)

来源:互联网 发布:股票虚拟盘软件 编辑:程序博客网 时间:2024/05/01 21:51

题目:

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:

"((()))", "(()())", "(())()", "()(())", "()()()"

思路:

我们可以用递归来解,left表示剩下的左括号数,right表示剩下的右括号数,那么当left==0且right==0时,说明左右括号已经全部写完,可以将string插入到vector。

如果left>0就往string中添加一个'(',如果right>0就往string中添加一个')'。

时间复杂度:O(2^n)

实现:

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); }    }};

补充:其实也可以理解为回溯的思想,我们构建的状态空间树如下:


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 保温杯磕了个坑怎么办 韩国旅游签证5年怎么办 新娘裙太长怎么办请茶 花无缺逾期20天怎么办 酷云密码忘了怎么办 我的声音不好听怎么办 耳朵后面长了个硬包怎么办 汽车油表不动了怎么办 油位传感器坏了怎么办 孕妇牙疼耳朵疼怎么办 耳机戴的耳朵疼怎么办 擤鼻涕左耳朵疼怎么办 擤完鼻涕耳朵疼怎么办 五岁儿童耳朵疼怎么办 耳朵里面长了个硬包怎么办 耳朵里有耳屎响怎么办 耳屎粘在耳膜上怎么办 小孩脖子上有淋巴结怎么办 大腿内侧的筋疼怎么办 大腿内侧磨的疼怎么办 孕晚期大腿根疼怎么办 吞口水耳朵会响怎么办 耳朵里面老痒该怎么办 牙疼头疼耳朵疼怎么办 耳朵里流水还疼怎么办 单侧耳朵里面疼怎么办 打到睾丸很疼怎么办 大拇手指关节疼怎么办 早上醒来耳朵嗡嗡响怎么办 两个月宝宝起湿疹怎么办 运动时耳朵闷堵怎么办 刚打的耳洞红肿怎么办 耳洞好了又肿了怎么办 耳洞发炎流血了怎么办 脸上出油怎么办小窍门 耳洞发炎化脓了怎么办 狗狗耳朵化脓了怎么办 狗狗耳朵破了怎么办 泰迪肛门腺发炎怎么办 狗狗肛门腺发炎怎么办 狗狗耳朵受伤了怎么办