标签:情况 The 分析 bsp string int append array png
一、题目
1、审题
2、分析:
给出数字 n,求所有正常的闭合的括号字符串的集合。
二、解答
1、思路:
利用循环不能解决问题,考虑用递归实现;
a、当 ‘(‘ >= ‘)’ 时,才是正常情况;否则不能闭合,即结束此次递归;
b、依次加入 ‘(‘、‘)’,当 ‘)‘ == ‘(‘,时,是一种满足的情况,加以记录,即结束此次递归;
public class Solution { public List<String> generateParenthesis(int n) { // 左括号数 >= 有括号数 List<String> list = new ArrayList<String>(); StringBuffer sb = new StringBuffer(); recursive(0, 0, n, sb, list); return list; } private static void recursive(int left, int right, int n, StringBuffer sb, List<String> list) { if(left < right) return; if(left == n && right == n) { list.add(sb.toString()); return; } if(left < n) { StringBuffer newSB = new StringBuffer(sb.toString()); newSB.append("("); recursive(1+left, right, n, newSB, list); } if(right < n) { StringBuffer newSB = new StringBuffer(sb.toString()); newSB.append(")"); recursive(left, 1+right, n, newSB, list); } } }
标签:情况 The 分析 bsp string int append array png
原文地址:https://www.cnblogs.com/skillking/p/9416437.html