(詳細圖解) 逆波蘭表示式
下面給出圖解:
下面給出程式碼:
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
- 逆波蘭表示式求值——棧與佇列佇列
- 力扣-150. 逆波蘭表示式求值力扣
- 逆波蘭演算法、中綴表示式轉字尾表示式演算法
- C#資料結構與演算法系列(十):逆波蘭計算器——逆波蘭表示式(字尾表示式)C#資料結構演算法
- LeetCode-150- 逆波蘭表示式求值LeetCode
- Leetcode——150. 逆波蘭表示式求值LeetCode
- 4、逆波蘭表示式求值——棧(java資料結構)Java資料結構
- Java計算器(使用逆波蘭表示式演算法)Java演算法
- leetcode 224. 基本計算器(逆波蘭表示式)LeetCode
- 逆波蘭計算器
- 前端菜鳥的每週一道演算法題(一) - 逆波蘭表示式求值前端演算法
- LeetCode 之 JavaScript 解答第150題 —— 逆波蘭表示式求值(Evaluate Reverse Polish Notation)LeetCodeJavaScript
- Lambda表示式詳解
- 我就給一個PHP逆波蘭表示式的演算法吧---工資計算專用PHP演算法
- 詳解正規表示式
- 正規表示式詳解
- java運算子和表示式詳細介紹Java
- 正規表示式詳細學習資料
- quartz.net 時間表示式----- Cron表示式詳解quartz
- Java中lambda表示式詳解Java
- crontab和cron表示式詳解
- 正規表示式?:用法詳解
- Java 正規表示式詳解Java
- grep正規表示式詳解
- 逆波蘭計算器分析和實現
- C# Lambda表示式詳解,及Lambda表示式樹的建立C#
- 正規表示式分組詳解
- 詳解 Python 正規表示式Python
- MySQL-正規表示式詳解MySql
- Python正規表示式詳解Python
- Linux正規表示式詳解Linux
- JS之正規表示式詳解JS
- zabbix觸發器表示式詳解觸發器
- Javascript正規表示式詳解(一)JavaScript
- JS正規表示式使用詳解JS
- C++ Lambda 表示式使用詳解C++