(詳細圖解) 逆波蘭表示式
下面給出圖解:
下面給出程式碼:
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> st;
//迴圈遍歷表示式 範圍for
for(const auto& str : tokens) {
if(str == "+" || str == "-"
|| str == "*" || str == "/") {
//遇到操作符
//取出兩個運算元
int right = st.top();
st.pop();
int left = st.top();
st.pop();
//計算結果併入棧
if(str == "+")
st.push(left + right);
else if(str == "-")
st.push(left - right);
else if(str == "*")
st.push(left * right);
else
st.push(left / right);
}
else {
//遇到運算元
//入棧, 注意要轉換成整型, 使用string的庫函式即可
st.push(stoi(str));
}
}
//棧頂即為最後的結果
return st.top();
}
};
相關文章
- 遞迴:逆波蘭表示式遞迴
- 中綴表示式轉為逆波蘭表示式
- 逆波蘭表示式求值 golang VS pythonGolangPython
- Leetcode——150. 逆波蘭表示式求值LeetCode
- LeetCode-150- 逆波蘭表示式求值LeetCode
- 關於利用STL棧求解四則中綴表示式以及中綴表示式轉逆波蘭表示式和逆波蘭表示式的求解
- 逆波蘭表示式求值——棧與佇列佇列
- 力扣-150. 逆波蘭表示式求值力扣
- 逆波蘭演算法、中綴表示式轉字尾表示式演算法
- C#資料結構與演算法系列(十):逆波蘭計算器——逆波蘭表示式(字尾表示式)C#資料結構演算法
- leetcode 224. 基本計算器(逆波蘭表示式)LeetCode
- Task A1 中綴表示式轉換為逆波蘭式
- 4、逆波蘭表示式求值——棧(java資料結構)Java資料結構
- LeetCode 之 JavaScript 解答第150題 —— 逆波蘭表示式求值(Evaluate Reverse Polish Notation)LeetCodeJavaScript
- 逆波蘭計算器
- 前端菜鳥的每週一道演算法題(一) - 逆波蘭表示式求值前端演算法
- 逆波蘭計算器分析和實現
- Lambda表示式詳解
- shell 正規表示式詳細整理
- 詳解正規表示式
- java運算子和表示式詳細介紹Java
- Python正規表示式詳解Python
- Linux正規表示式詳解Linux
- Java中lambda表示式詳解Java
- 詳解 Python 正規表示式Python
- Spring EL表示式使用詳解Spring
- crontab和cron表示式詳解
- Hyperf 釋出輕量級有向無環圖任務編排庫和逆波蘭表示法孵化元件以及 v2.1.4 版本元件
- C# Lambda表示式詳解,及Lambda表示式樹的建立C#
- Python正規表示式 findall函式詳解Python函式
- 正規表示式分組詳解
- MySQL-正規表示式詳解MySql
- Day10(棧與佇列) | 150. 逆波蘭表示式求值 239. 滑動視窗最大值 347.前 K 個高頻元素佇列
- js正規表示式常用函式詳解(續)JS函式
- Python 正規表示式模組詳解Python
- 正規表示式詳解及實戰
- python爬蟲 正規表示式詳解Python爬蟲
- 超詳細Python正規表示式操作指南(re使用),一Python