每日一题——逆波兰表达式
当遇到数字的时候把他压入栈,当遇到符号的时候把前面两个式子出栈
要注意的是,栈的top是第二个参数,top后才是第一个参数
根据运算符操作后,再把结果压入栈中。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串vector
* @return int整型
*/
int evalRPN(vector<string>& tokens) {
int num1,num2;
stack<int>st;
for(auto c:tokens)
{
if(c=="*"||c=="+"||c=="-"||c=="/")
{
num2=st.top();st.pop();
num1=st.top();st.pop();
if(c=="*")
{
st.push(num1*num2);
}
else if(c=="+")
{
st.push(num1+num2);
}
else if(c=="-")
{
st.push(num1-num2);
}
else if(c=="/")
{
st.push(num1/num2);
}
}
else
{
st.push(stoi(c));
}
}
// write code here
return st.top();
}
};