美文网首页
LeetCode:括号生成

LeetCode:括号生成

作者: 李海游 | 来源:发表于2020-04-09 16:39 被阅读0次

22. 括号生成

思路:
最终的字符串肯定是 n个'(', n个 ')' 。
所以'('个数小于n,才可以添加'(';
‘(’个数大于')',才可以添加')'。
‘(’个数等于 n,并且')'个数等于 n,递归终止,且该结果一定是正确结果。
递归过程中不会出现'('或')'个数大于n的情况。

class Solution {
public:
    vector<string> generateParenthesis(int n) {
        vector<string> v;
        generate("", n, n, v);
        return v;
    }
    void generate(string item, int lef, int rig, vector<string> &v)
    {
        if(lef==0&&rig==0)
        {
            v.push_back(item);
            return;
        }
        if(lef>0) // +(   左括号剩余数-1
            generate(item+'(', lef-1,rig,v);
        if(lef<rig)  // +)  右括号剩余数-1
            generate(item+')', lef,rig-1,v);
    }
};
没思路时不妨理一下可能的状况,哪些状况是合理的,可以用代码约束的。

参考自:https://www.bilibili.com/video/BV19J411E7ft?from=search&seid=7281370434236405070

相关文章

  • a 递归

    1 括号生成(leetcode 22)

  • LeetCode-22. 括号生成

    参考:第7课-泛型递归、树的递归 LeetCode-22. 括号生成 22. 括号生成 数字 n 代表生成括号的对...

  • 2018-04-07

    Leetcode面试题 —— 生成括号 1 题目描述: 给出n代表生成括号的对数,请你写出一个能够生成...

  • 【leetcode】括号生成

    【leetcode】括号生成 题目: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 ...

  • LeetCode:括号生成

    22. 括号生成 思路:最终的字符串肯定是 n个'(', n个 ')' 。所以'('个数小于n,才可以添加'(';...

  • LeetCode-22-括号生成

    LeetCode-22-括号生成 题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且...

  • LeetCode 22. 括号生成

    1、题目 22. 括号生成 - 力扣(LeetCode) https://leetcode-cn.com/prob...

  • LeetCode-22 括号生成-M

    括号生成[https://leetcode-cn.com/problems/generate-parenthese...

  • 22. 括号生成

    22. 括号生成[https://leetcode.cn/problems/generate-parenthese...

  • 2020-04-24

    leetcode 括号问题:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括...

网友评论

      本文标题:LeetCode:括号生成

      本文链接:https://www.haomeiwen.com/subject/wnwcmhtx.html