zoukankan      html  css  js  c++  java
  • LeetCode OJ-- Generate Parentheses *

    https://oj.leetcode.com/problems/generate-parentheses/

    输入n产生n个( ,n个 )组成的所有合法的括号组合。

    现在纸上画画,找到规律:

    1.每一个位置上 ( 的个数必须 >= ) 的个数

    2.如果 ( 的个数是n了,则只能再画 ) 了

    3.否则,既可以是 ( 又可以是 )

    4.初始第一个位置是 (

    5.当 string的长度是 2*n 的时候停止

    使用递归调用:

    class Solution {
    public:
        vector<string> generateParenthesis(int n) {
            vector<string> ans;
            if(n<=0)
                return ans;
    
            string ansPiece;
            ansPiece.append("(");
    
            subGenerateParenthesis(n,ans,ansPiece);
    
            return ans;
        }
        void subGenerateParenthesis(int &n, vector<string> &ans, string ansPiece)
        {
            if(ansPiece.size() == 2*n)
            {
                ans.push_back(ansPiece);
                return;
            }
            int leftNum = 0;
            int rightNum = 0;
            for(int i = 0;i<ansPiece.size();i++)
            {
                if(ansPiece[i]=='(')
                    leftNum++;
                else
                    rightNum++;
            }
            if(leftNum==n )
            {
                ansPiece.push_back(')');
                subGenerateParenthesis(n,ans,ansPiece);
            }
            else if(leftNum == rightNum)
            {
                ansPiece.push_back('(');
                subGenerateParenthesis(n,ans,ansPiece);
            }
            else
            {
                string ansPiece2 = ansPiece;
                ansPiece.push_back('(');
                subGenerateParenthesis(n,ans,ansPiece);
    
                ansPiece2.push_back(')');
                subGenerateParenthesis(n,ans,ansPiece2);
            }
        }
    };
  • 相关阅读:
    洛谷 P3389 【模板】高斯消元法
    洛谷 P2090 数字对
    树链剖分
    bzoj3784 树上的路径
    K Seq HihoCoder
    一些奇怪的注意事项
    洛谷 P3437 [POI2006]TET-Tetris 3D
    洛谷 P2048 [NOI2010]超级钢琴 || Fantasy
    JVM字节码指令
    java中什么是Bridge Method(桥接方法)
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3817319.html
Copyright © 2011-2022 走看看