Leetcode刷题第八天-回溯

打印 上一主题 下一主题

主题 926|帖子 926|积分 2778

22:括号生成
链接:22. 括号生成 - 力扣(LeetCode)
括号是一对,所以每一次递归结束条件是字符串长度=2*n
有效括号判断:'('个数==')'个数时,当前必须是'(','('个数==n时,必须是')',其他情况当前位置遍历两边,既可以是'('又可以是')'
  1. 1 class Solution:
  2. 2     def generateParenthesis(self, n: int) -> List[str]:
  3. 3         if not n :  return []
  4. 4         re=[]
  5. 5         
  6. 6         self.backtracking(2*n,re,"",0)
  7. 7         return re
  8. 8     def backtracking(self,n,re,path,index):
  9. 9         if(len(path)==n):   
  10. 10             re.append(path)
  11. 11             return
  12. 12         for i in range(index,n):
  13. 13             num=self.isValid(path,i,n)
  14. 14             if(num):    self.backtracking(n,re,path+num,i+1)
  15. 15             else:
  16. 16                 self.backtracking(n,re,path+'(',i+1)
  17. 17                 self.backtracking(n,re,path+')',i+1)
  18. 18
  19. 19     def isValid(self,path,index,n):
  20. 20         count1,count2=path.count('('),path.count(')')
  21. 21         if(count1==count2 ):   return '('
  22. 22         if(count1==n//2):   return ')'
  23. 23         return 0
复制代码
generateParenthesis89:格雷编码
链接:89. 格雷编码 - 力扣(LeetCode)

天哪噜,谁敢信这么个玩意做了一下午
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表