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
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 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:...