23 leetcode - Generate Parentheses
来源:互联网 发布:开源大数据可视化工具 编辑:程序博客网 时间:2024/06/03 12:53
#!/usr/bin/python# -*- coding: utf-8 -*-'''英文:Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.举例:given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())", "()()()"]'''class Solution(object): def generateParenthesis(self, n): """ :type n: int :rtype: List[str] """ if n < 1: return [] result = [] tmp = ['('] * n * 2 left = n - 1 right = n #第一个一定要为( self.fun(tmp,result,left,right,1) return result def fun(self,tmp,result,left,right,index): if left == 0 and right == 0: result.append(''.join(tmp)) if left > 0: #只要有(,就能放 tmp[index] = '(' self.fun(tmp,result,left - 1,right,index + 1) if right > 0 and left < right:#(放了,)才能放,保证有一个(与之配对 if left == 0: #小优化.... for i in range(right): tmp[index + i] = ')' result.append(''.join(tmp)) return 0 tmp[index] = ')' self.fun(tmp,result,left,right - 1,index + 1)if __name__ == "__main__": s = Solution() print s.generateParenthesis(3)
0 0
- [leetcode 23] Generate Parentheses
- 23 leetcode - Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- leetcode 51: Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode: Generate Parentheses
- LeetCode Generate Parentheses
- 【leetcode】Generate Parentheses
- [LeetCode]Generate Parentheses
- Leetcode Generate Parentheses
- LeetCode-Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode - Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode: Generate Parentheses
- Leetcode: Generate Parentheses
- “无法查找或打开PDB文件”解决办法
- 数据结构实验之数组三:快速转置
- 【android】第三方集成之——极光推送
- PMP学习笔记之第13章 项目干系人管理 ——13.2规划干系人管理
- python3 模块构建与发布
- 23 leetcode - Generate Parentheses
- Android Retrofit框架解析
- 51Nod 1629 B君的圆锥
- React Native技术剖析(二)
- Unity 编辑器多重编辑 Multi-Object Editing
- centos6.5 安装python2.7.12
- 安卓自定义 View 进阶: 图片文字
- 面向对象1
- 创建窗口,使其能移动的代码