美文网首页
241. Different Ways to Add Paren

241. Different Ways to Add Paren

作者: 阿团相信梦想都能实现 | 来源:发表于2016-12-18 05:35 被阅读0次
    class Solution(object):
        def __init__(self):
            self.res_hash=dict()
        def diffWaysToCompute(self, input):
            """
            :type input: str
            :rtype: List[int]
            """
            if input.isdigit():return [int(input)]
            
            if input in self.res_hash:
                print 'reused result for',input
                return self.res_hash[input]
                
            res=[]
            for i in range(len(input)):
                if input[i] in '+-*':
                    res1=self.diffWaysToCompute(input[:i])
                    res2=self.diffWaysToCompute(input[i+1:])
                    for a in res1:
                        for b in res2:
                            res.append(self.helper(a,b,input[i]))
            self.res_hash[input]=res
            return res 
            
        def helper(self,num1,num2,operator):
            if operator=='+':
                return num1+num2
            elif operator=='-':
                return num1-num2
            else:
                return num1*num2
            
    

    相关文章

      网友评论

          本文标题:241. Different Ways to Add Paren

          本文链接:https://www.haomeiwen.com/subject/vopamttx.html