给定n对括号,编写一个函数来生成正确括号的所有组合。

来源:互联网 发布:腾讯红包数据作弊 编辑:程序博客网 时间:2024/06/05 08:02

本题源自leetcode

-----------------------------------------------------------------------------------------------

思路:

 1  用回溯法。用变量m 表示左括号的数量。n表示一共要插入括号的数量。则当m大于0 可以插入右括号。当n 大于 0 可以插入左括号

代码:

vector<string> generateParenthesis(int n) {        if(n==0)            return vector<string>();        vector<string> res;        backPath(res,"",n,0);        return res;    }    void backPath(vector<string>& res,string s,int n,int m){        if(n==0&&m==0){            res.push_back(s);            return ;        }        if(n>0)            backPath(res,s+"(",n-1,m+1);        if(m>0)            backPath(res,s+")",n,m-1);    }


原创粉丝点击