目录
一、题目
二、分析+代码
三、中缀表达式转后缀表达式
一、题目
150. 逆波兰表达式求值 - 力扣(LeetCode)
二、分析+代码
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int>s;
for(auto ch:tokens)
{
if(ch!="+"&&ch!="-"&&ch!="*"&&ch!="/")//ch不是运算符
{
s.push(stoi(ch));//将ch转换成整数类型,然后进栈
}
else//ch是运算符的时候
{
//拿出栈中的两个数据
int right = s.top();
s.pop();
int left = s.top();
s.pop();
int ret = 0;
switch(ch[0])//ch[0]表示取ch中的第一个字符,例如ch = "+",那么ch[0] = ‘+’
{
case '+':
ret = right + left;
s.push(ret);
break;
case '-':
ret = left - right;
s.push(ret);
break;
case '*':
ret = left * right;
s.push(ret);
break;
case '/':
ret = left / right;
s.push(ret);
break;
}
}
}
return s.top();
}
};