首页 > 代码库 > 【LeetCode】Generate Parentheses 解题报告
【LeetCode】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:
"((()))", "(()())", "(())()", "()(())", "()()()"
【思路】
自然而然地相当递归。不知有没有非递归的解法,简单查了一下网上也都是这种解法。
【Java代码】
public class Solution { private List<String> list = new ArrayList<String>(); public List<String> generateParenthesis(int n) { run("", n, 0); return list; } // l 为剩余左括号数,r为剩余未匹配的右括号数目 public void run(String str, int l, int r) { if (l == 0 && r == 0) { list.add(str); return; } if (l > 0) { String s = str + "("; run(s, l-1, r+1); } if (r > 0) { String s = str + ")"; run(s, l, r-1); } } }
【LeetCode】Generate Parentheses 解题报告
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。