zoukankan      html  css  js  c++  java
  • Generate Parentheses

    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:

    [
      "((()))",
      "(()())",
      "(())()",
      "()(())",
      "()()()"
    ]
    

    Analyse: As long as number of "(" is smaller than n, we can push "(", as long as number of ")" is smaller than "(", we can push ")". 

    Runtime: 0ms.

     1 class Solution {
     2 public:
     3     vector<string> generateParenthesis(int n) {
     4         vector<string> result;
     5         if(!n) return result;
     6         
     7         helper(n, 0, 0, result, "");
     8         return result;
     9     }
    10     
    11     void helper(int n, int left, int right, vector<string>& result, string temp) {
    12         if(left == n && right == n) {
    13             result.push_back(temp);
    14             return;
    15         }
    16         if(left < n) helper(n, left + 1, right, result, temp + "(");
    17         if(right < left && right < n) helper(n, left, right + 1, result, temp + ")");
    18     }
    19 };
  • 相关阅读:
    EXE中释放文件
    关闭GS选项,解决注入后崩溃
    HDU2516 取石子游戏
    HDU2188 选拔志愿者
    HDU2149 Public Sale
    HDU2147 kiki's game
    HDU1846 Brave Game
    LightOJ1214 Large Division
    POJ2480 Longge's problem
    HDU 5880 Family View
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/5755006.html
Copyright © 2011-2022 走看看