class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int>st;
for(int i=0;i<tokens.size();i++){
if(tokens[i]!="+"&&tokens[i]!="-"&&tokens[i]!="*"&&tokens[i]!="/"){
int k=stoi(tokens[i]);
st.push(k);
}
else{
if(tokens[i]=="+"){
int a=st.top();
st.pop();
int b=st.top();
st.pop();
st.push(a+b);
}
if(tokens[i]=="-"){
int a=st.top();
st.pop();
int b=st.top();
st.pop();
st.push(b-a);
}
if(tokens[i]=="*"){
int a=st.top();
st.pop();
int b=st.top();
st.pop();
st.push(b*a);
}
if(tokens[i]=="/"){
int a=st.top();
st.pop();
int b=st.top();
st.pop();
st.push(b/a);
}
}
}
return st.top();
}
};
150. 逆波兰表达式求值
最新推荐文章于 2024-09-13 18:31:20 发布
该代码展示了如何使用C++实现一个名为`intevalRPN`的函数,用于计算逆波兰表示法(RPN)中的算术表达式,利用栈数据结构进行运算。
摘要由CSDN通过智能技术生成