您的位置:首页 > 编程语言 > Lua

逆波兰表达式求值(Evaluate Reverse Polish Notation)

2015-08-01 15:28 190 查看
问题描述:

逆波兰表达式求值,经典问题。

思路:

遇到数字入栈,遇到符号取栈顶的两个元素出来,再将结果入栈,最后栈里剩下的元素就是结果了。

实现代码:

class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> st;
for(auto &s:tokens){
if(s.length()>1 || isdigit(s[0])) st.push(stoi(s));
else{
int num1=st.top(); st.pop();
int num2=st.top(); st.pop();
if(s[0]=='+') num2+=num1;
if(s[0]=='-') num2-=num1;
if(s[0]=='*') num2*=num1;
if(s[0]=='/') num2/=num1;
st.push(num2);
}
}
return st.top();
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: