思路:分治法
不同位置新增括號的作用在於改變不同運算子的優先順序。
所以,可以在遍歷的過程中依次把運算子設為第一優先順序,遞迴計算左邊和右邊。
class
solution
:def
diffwaystocompute
(self,
input
:str)-
> list[
int]:if
input
.isdigit():
# 全數字
return
[int
(input)]
ans =
for i, val in
enumerate
(input):
if val in
: left = self.diffwaystocompute(
input
[:i]
)# 可能是列表
241 為運算表示式設計優先順序
給定乙個含有數字和運算子的字串,為表示式新增括號,改變其運算優先順序以求出不同的結果。你需要給出所有可能的組合的結果。有效的運算符號包含 以及 示例 1 輸入 2 1 1 輸出 0,2 解釋 2 1 1 0 2 1 1 2 示例 2 輸入 23 45 輸出 34,14,10,10,10 解釋 2 3...
241 為運算表示式設計優先順序
題目描述 給定乙個含有數字和運算子的字串,為表示式新增括號,改變其運算優先順序以求出不同的結果。你需要給出所有可能的組合的結果。有效的運算符號包含 以及 解題思路一 對於每乙個運算符號,先執行兩邊的表示式,然後再處理當前這個符號,採用分治的思想,如下 class solution def diffw...
241 為運算表示式設計優先順序(分治)
給定乙個含有數字和運算子的字串,為表示式新增括號,改變其運算優先順序以求出不同的結果。你需要給出所有可能的組合的結果。有效的運算符號包含 以及 看到題就覺得有點複雜,可以考慮一下遞迴的方式,去尋找子問題和原問題解的關係。可以通過運算子把整個式子分成兩部分,兩部分再利用遞迴解決。以 2 3 4 5 為...