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 Parentheses
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Given a string of numbers and operators, return all possi...
- Given a string of numbers and operators, return all possi...
- **Reference: **https://leetcode.com/problems/different-wa...
- Given a string of numbers and operators, return all possi...
- Question description: My code: LeetCode result: Solution:...
