最近疯狂的爱上了李宗盛大哥的歌
真的是应了那句话
年少不懂李宗盛
听懂已是曲中人
尤其是漂洋过海来看你这首歌
为你我用了半年的积蓄
飘洋过海的来看你
为了这次相聚
我连见面时的呼吸都曾反复练习
言语从来没能将我的情谊
表达千万分之一
为了这个遗憾
我在夜里想了又想不肯睡去
记忆它总是慢慢地累积
在我心中无法抹去
真的是写到心坎去了啊!
真心钦佩李宗盛大哥的文采
22-括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
这一题我刚开始是没做出来,或者说没有一点头绪。后来实在不行了就跑去看网上大佬的解法,一看就知道果然是要用递归的,熟悉我的读者肯定知道我是最烦用递归的,虽然它真的是好用,但我还是不感冒。这一题也是一样,用递归很简单,而且极易理解,我就不多说了,直接贴代码吧。
代码如下:
class Solution:
def generateParenthesis(self, n):
"""
:type n: int
:rtype: List[str]
"""
ans = []
def back(S='', left=0, right=0):
if len(S) == 2 * n:
ans.append(S)
return
if left < n:
back(S + '(', left + 1, right)
if right < left:
back(S + ')', left, right + 1)
back()
return ans
if __name__ == '__main__':
n = 3
result = Solution().generateParenthesis(n)
print(result)
执行效率肯定也是没得话说。