LeetCode 224 基本計算器

2022-09-22 02:45:08 字數 509 閱讀 7953

計算器得簡單題,本來想用字尾+棧來解決,但是沒想到只涉及加減和括號可以直接用括號展開得思想進行解決;

主要方法是使用棧來記錄當前整個括號內的值;

對字串內的符號進行記錄,為括號展開作準備;

例如:-(2+1)

記錄負號之後,遇到左括號直接壓棧,此時取棧頂符號進行+,-號判斷時,可以達到相反的判斷邏輯,遇到右括號直接彈棧,避免對括號外圍得影響;

算是括號展開的一種取巧得方式;

class solution 

else if (s[index] == '-')

else if (s[index] == '(')

else if (s[index] == ')')

else if (s[index] >= '0' && s[index] <= '9')

if (sg)

else

}else

index++;

}return ret;

}};

leetcode 224 基本計算器

題目 基本計算器 實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例1 輸入 1 1 輸出 2 示例2 輸入 2 1 2 輸出 3 示例3 輸入 1 4 5 2 3 6 8 輸出 23 說明 c include include cl...

leetcode 224 基本計算器

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例 1 輸入 1 1 輸出 2 示例 2 輸入 2 1 2 輸出 3 示例 3 輸入 1 4 5 2 3 6 8 輸出 23 採用雙棧法,設立乙個資料棧和乙個操作符棧,在遍歷字串的過程...

Leetcode 224基本計算器

邏輯先寫第三步再寫第二步,思考時要按照表示式順序先看數字再看右括號正常考慮,時間複雜度o n class solution intcalculate string s else 遇到數字 nums.push n 處理多位數等價寫法 while j s.size isdigit s j j j i c...