[LeetCode]Evaluate Reverse Polish Notation

来源:互联网 发布:腾讯软件无法连接网络 编辑:程序博客网 时间:2024/06/03 17:30

题目链接:https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/

本题计算逆波兰表达式的值,本身并不难不过在做的时候忽略了几个点:

1、计算输入的值可能是负数,

2、输入的表达式可能只有一个数字,

3、在计算除法的时候除数可能为0,不过貌似测试集中没有这种情况

/** * 计算逆波兰表达式的值 * 有效运算符为+、-、×、/ */int evalRPN(vector<string> &tokens) {int rs =0;stack<int>s;for(size_t i=0;i<tokens.size();++i){char c=tokens[i][0];if(isdigit(c)||isdigit(tokens[i][1])){const char * s_char = tokens[i].c_str();s.push(atoi(s_char));}else{int c1=s.top();s.pop();int c2=s.top();s.pop();int rt=0;//cout<<"c2 "<<c2<<" c1 "<<c<<" "<<c1<<endl;switch(c){case '+':rt=c2+c1;break;case '-':rt=c2-c1;break;case '*':rt=c2*c1;break;case '/':rt=c2/c1;break;}s.push(rt);//cout<<"rt "<<rt<<endl;}}return rs;}


0 0