前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode: Generate Parentheses

Leetcode: Generate Parentheses

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 15:13:24
2850
发布2019-01-22 15:13:24
举报

题目: 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:

“((()))”, “(()())”, “(())()”, “()(())”, “()()()”

思路分析: 最后的组合结果总有这样的规律:左括号的个数大于等于右括号的个数。所以,按照这个规律:假设在位置k剩余left个左括号和right个右括号,如果left>0,可以直接打印左括号。,如果left<right且right!=0,则可以打印右括号。如果left和right均为零,则说明已经完成一个合法排列,可以将其打印出来。

C++参考代码:

代码语言:javascript
复制
class Solution
{
private:
    void generateSub(vector<string> &result, string current, int left, int right)
    {
        if (left == 0 && right == 0) result.push_back(current);
        else
        {
            if (left != 0) generateSub(result, current + '(', left - 1, right);
            if (left < right && right != 0) generateSub(result, current + ')', left, right - 1);
        }
    }

public:
    vector<string> generateParenthesis(int n)
    {
        vector<string> result;
        if (n > 0) generateSub(result, string(), n, n);
        return result;
    }
};

C#参考代码:

代码语言:javascript
复制
public class Solution
{
    private void GenerateSubString(IList<string> result, string current, int left, int right)
    {
        String value = current;
        if (left == 0 && right == 0) result.Add(value);
        else
        {

            if (left != 0) GenerateSubString(result, current + '(', left - 1, right);
            if (left < right && right != 0) GenerateSubString(result, current + ')', left, right - 1);
        }
    }

    public IList<string> GenerateParenthesis(int n)
    {
        IList<string> result = new List<string>();
        if (n > 0) GenerateSubString(result, "", n, n);
        return result;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年04月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档