题解 | #括号生成#
括号生成
https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca?tpId=295&tqId=725&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # @auther zhangjunyi # @time 20230309 # @param n int整型 # @return string字符串一维数组 # class Solution: def generateParenthesis(self , n: int) -> list[str]: # write code here #定义L1符号列表 L1 =["(",")"] #定义L2收集每个步骤的括号生成的结果,初始化为空 L2=[] #定义L3收集总共生成的结果,初始化为空 L3=[] L4=[] #定义变量i,j表示左右括号在L2中的数量,初始化为0 i=0 j=0 #定义回朔函数当j<i的时候,可以添加右括号,也可以添加左括号,用回朔法进行添加 def traversal(i,j,L1,L2): if j==i and i==n: L4.append(L2.copy()) return for x in L1: if x=="(" and i<n: L2.append(x) i+=1 traversal(i,j,L1,L2) i-=1 L2.pop() elif x==")" and j<i : L2.append(x) j+=1 traversal(i,j,L1,L2) j-=1 print(L2) print(L2[-1]) L2.pop() return L4 L4 = traversal(i,j,L1,L2) for x in L4: L3.append("".join(x)) return L3