首页 > 代码库 > Generate Parentheses 【python】
Generate Parentheses 【python】
午睡醒敲到3点钟,搞了一个多小时。
应该是一种 非递归 的实现方法吧。
例如,4个括号的情况,可以看成是:
(3个括号的情况 连接上 1个括号的情况)+(2个括号的情况 连接上 2个括号的情况)+(1个括号的情况 连接上 3个括号的情况) + (‘(’ 连接上 3个括号的情况 连接上 ‘)’);
只是这样会每次产生重复的项,要先去掉,才能给下一次调用使用。
class Solution: # @param an integer # @return a list of string def generateParenthesis(self, n): dp=[] for i in range(n): temp=[] if i==0: dp.append([‘()‘]) else: for k in range(i): for m in dp[k]: for n in dp[i-k-1]: temp.append(m+n) for o in dp[i-1]: temp.append(‘(‘+o+‘)‘) dp.append(self.delRepetition(temp)) return dp[i] def delRepetition(self,A): # A : list k=len(A)-1 while k>0: for l in range(k): if A[k] == A[l]: del A[k] break k-=1 return Aif __name__==‘__main__‘: s=Solution() print(s.delRepetition([1,1,1,2,2,2,3,3,5])) print(s.generateParenthesis(4))
一直通不过,最后发现是因为剔除重复项的函数写错了,晕死。
欢迎指出不足之处与讨论。
Generate Parentheses 【python】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。