您的位置:首页 > 其它

[leetcode]Generate Parentheses

2012-12-31 11:32 447 查看
class Solution {
public:
//p是当前的string( 例如"((()" );k是当前长度,例如4;n是总长度;lMore是左括号比右括号多多少
void generateParenthesis(string p, int k, int n, int lMore){
if (lMore < 0)
return;

if (k == n){
if (lMore == 0)
result.push_back(p);    //如果满足条件,push_back并退出
return;                        //如果不满足条件,直接退出
}

string p2 = p + "(";
generateParenthesis(p2, k+1, n, lMore+1);

string p3 = p + ")";
generateParenthesis(p3, k+1, n, lMore-1);
}

vector<string> generateParenthesis(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
result.clear();
if (n<1)
return result;

string p;        //p用来存储已经生成的括号对
p.resize(2*n);
p.clear();
generateParenthesis(p, 0, 2*n, 0);

return result;
}

private:
vector<string> result;
};


EOF
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: