首页 > 代码库 > Evaluate Reverse Polish Notation
Evaluate Reverse Polish Notation
定义一个队栈,每次出现一个数放进栈中,若出现运算符的话,就将栈顶的两个元素出栈进行运算后在放入栈
考虑特殊情况
1.只有一个数字的时候
2.出现负数的情况
class Solution{public: int evalRPN(vector<string> &tokens) { // if(tokens.size()==1) return tokens[0]; stack<int>S; for(int i=0; i<tokens.size(); i++) { if(!(tokens[i][0]>=0 && tokens[i][0]<=9)) { if((tokens[i][0]>=‘0‘ && tokens[i][0]<=‘9‘)) { int n; sscanf(tokens[i],"%d",&n); S.push(n); } else if(!(tokens[i][0]>=‘0‘ && tokens[i][0]<=‘9‘) && (tokens[i][1]>=‘0‘ && tokens[i][1]<=‘9‘)) { int n; sscanf(tokens[i],"%d",&n); S.push(n); } else { int n,m; m=S.top();S.pop(); n=S.top();S.pop(); switch(tokens[i][0]) { case ‘+‘:S.push(m+n);break; case ‘-‘:S.push(n-m);break; case ‘*‘:S.push(n*m);break; case ‘/‘:S.push(n/m);break; } } } } return S.top(); }};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。