241. 为运算表达式设计优先级

68 阅读1分钟

241. 为运算表达式设计优先级

分治+eval()

class Solution:
    def diffWaysToCompute(self, expression: str) -> List[int]:
        res = []
        if all(c.isdigit() for c in expression):
            return [int(expression)]
        for i, c in enumerate(expression):
            if not c.isdigit():
                res += [eval(f'{a}{c}{b}')
                        for a in self.diffWaysToCompute(expression[:i])
                        for b in self.diffWaysToCompute(expression[i+1:])
                ]
        return res