LeetCode227 基本計算器II

2022-05-19 12:08:23 字數 821 閱讀 1621

感覺自己的思路還不錯,比較簡單清晰,**量也比較少,沒有用到記錄運算子的變數或棧,就想把這個思路發一下部落格。

題目:

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。

字串表示式僅包含非負整數,"+", "-", "*", "/" 四種運算子和空格 " "。 整數除法僅保留整數部分。

思路:

使用乙個棧用於暫存得不到計算的數字(無法確定優先順序,比如當前是"+",那麼可能下乙個操作符是"*",所以暫時無法計算)。最終乘除操作符兩側的數會被得到計算並push進棧,最後相加即可。比如:

2 - 1 + 3 * 4 - 4 / 2 * 1   =>  2 - 1 + [ 3 * 4 ] + [ -4 / 2 * 1 ] =>  最終棧裡面的情況為 [2, -1, 12, -2],然後計算和即可。

情況如下:

class solution  else if (ch == '-')  else if (ch == '*')  else if (ch == '/') 

i = ret[1]; //調整索引為,獲得的下乙個數字的末尾索引

}// 返回計算結果

int ans = ;

stack.foreach(num -> ans[0] += num);

return ans[0];

}// 返回下乙個數字

private int getnextnumber(string s, int i) ; // 返回得到的數字及該數字最後乙個數字字元的索引

}}

leetcode 227 基本計算器II

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式僅包含非負整數,四種運算子和空格 整數除法僅保留整數部分。示例 1 輸入 3 2 2 輸出 7示例 2 輸入 3 2 輸出 1示例 3 輸入 3 5 2 輸出 5說明 1 你可以假設所給定的表示式都是有效的。2 請不要使用內建的庫函式 e...

leetcode 227基本計算器II

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式僅包含非負整數,四種運算子和空格 整數除法僅保留整數部分。示例 1 輸入 3 2 2 輸出 7 示例 2 輸入 3 2 輸出 1 示例 3 輸入 3 5 2 輸出 5 說明 你可以假設所給定的表示式都是有效的。請不要使用內建的庫函式 ev...

leetcode 227 基本計算器 II

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式僅包含非負整數,四種運算子和空格 整數除法僅保留整數部分。示例 1 輸入 3 2 2 輸出 7 示例 2 輸入 3 2 輸出 1 示例 3 輸入 3 5 2 輸出 5 說明 你可以假設所給定的表示式都是有效的。請不要使用內建的庫函式 ev...