首页 > 代码库 > Generate Parentheses
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
答案
public class Solution { public List<String> generateParenthesis(int n) { List<String> list=new LinkedList<String>(); if(n==0) { return list; } List<List<String>> lists=new ArrayList<List<String>>(n+1); lists.add(list); list=new LinkedList<String>(); list.add("()"); lists.add(list); for(int i=2;i<=n;i++) { list=new LinkedList<String>(); for(String element:lists.get(i-1)) { list.add("()"+element); list.add("("+element+")"); } for(int j=2;j<i;j++) { for(String pLeft:lists.get(j-1)) { for(String pRight:lists.get(i-j)) { list.add("("+pLeft+")"+pRight); } } } lists.add(list); } return lists.get(n); } }
Generate Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。