• 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 };
  • 相关阅读:
    js的alert乱码问题
    (6)select语句
    (5)视图
    (4)索引
    (3)操作数据库
    (2)MySQL数据类型
    (1)MySQL概述
    RocketMQ安装使用
    uniapp打包h5
    面试必问 如何保证缓存与数据库的一致性
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/5755006.html
Copyright © 2020-2023  润新知