Leetcode 22 Generate Parentheses 生成括号

it2026-08-09  1

发现好多面试考察频率高的题目都是考察思想而不是难度。

这个题有想法之后代码很好写。主要是需要想到每次只可能往后加左括号或者右括号, 然后想到两种情况的条件写一个深搜就可以了。左括号只要还没加到n个都可以,右括号需要保证前面有未关闭的左括号,也就是剩余的右括号数量大于左括号的数量。然后没有剩余括号的时候把记录的字符串加到list里面就行了。

class Solution { private List<String> ans = new ArrayList<String>(); private void work(int left,int right, String st) { if (left==0&&right==0) { ans.add(st); return; } if (left!=0) { work(left-1,right,st+'('); } if (left<right) { work(left,right-1,st+')'); } } public List<String> generateParenthesis(int n) { work(n,n,""); return ans; } }

 

最新回复(0)