Generate Parentheses (Python)
kitt
posted @ 2014年2月10日 17:16
in LeetCode
, 3144 阅读
递归方法,确保在每一步右括号数 <= 左括号数 <= n即可。
class Solution: # @param an integer # @return a list of string def gen(self, s, leftParenNum, rightParenNum): if leftParenNum == rightParenNum == Solution.n: Solution.res.append(s) return if leftParenNum < Solution.n: self.gen(s + '(', leftParenNum + 1, rightParenNum) if rightParenNum < leftParenNum <= Solution.n: self.gen(s + ')', leftParenNum, rightParenNum + 1) return def generateParenthesis(self, n): Solution.n = n Solution.res = [] self.gen('', 0, 0) return Solution.res
2014年8月08日 00:56
kitt 你好,
请问这个解法里面有的地方用self., 有的地方用Solution.,有什么区别吗?
或者这种用法叫什么呢我自己搜一下也行的:)
多谢多谢
2014年11月12日 11:50
@tianjinxiaohuoer: self.variable是object的成员变量 Solution.variable是类变量
2014年11月12日 11:57
@tianjinxiaohuoer: 在这里没有区别 因为只instantiate了一个Solution object,如果有多个Solution的实例,s1 s2 s3 ...情况就不同了,self.var的作用域仅限于某个object自身, Solution.res可以引起整个类的改变。