import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return string字符串ArrayList */ public ArrayList<String> generateParenthesis (int n) { // write code here ArrayList<String> ret = new ArrayList<String>(); produce(ret, n, ""); return ret; } public void produce(ArrayList<String> ret, int n, String str) { if (str.length() > 2*n) { return; } if (str.length() == 2*n){ if (isLegal(str)) { ret.add(str); } return; } produce(ret, n, str+"("); produce(ret, n, str+")"); } public Boolean isLegal(String str) { int fast = 0; int i = 0; while (i < str.length()) { if (str.charAt(i) == ')'){ fast--; }else { fast++; } if (fast < 0){ return false; } i++; } if (fast != 0) { return false; } return true; } }