台州企业免费建站,盐城网站建设报价,加强部门网站建设工作总结,自己能自学网站建设吗给你一个字符串数组 tokens #xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意#xff1a; 有效的算符为 、-、* 和 / 。 每个操作数#xff08;运算对象#xff09;都可以是一个整数或者另一个表达式。 两个… 给你一个字符串数组 tokens 表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意 有效的算符为 、-、* 和 / 。 每个操作数运算对象都可以是一个整数或者另一个表达式。 两个整数之间的除法总是 向零截断 。 表达式中不含除零运算。 输入是一个根据逆波兰表示法表示的算术表达式。 答案及所有中间计算结果可以用 32 位 整数表示。 示例 1 输入tokens [2,1,,3,*] 输出9 解释该算式转化为常见的中缀算术表达式为((2 1) * 3) 9 示例 2 输入tokens [4,13,5,/,] 输出6 解释该算式转化为常见的中缀算术表达式为(4 (13 / 5)) 6 示例 3 输入tokens [10,6,9,3,,-11,*,/,*,17,,5,] 输出22 解释该算式转化为常见的中缀算术表达式为 ((10 * (6 / ((9 3) * -11))) 17) 5 ((10 * (6 / (12 * -11))) 17) 5 ((10 * (6 / -132)) 17) 5 ((10 * 0) 17) 5 (0 17) 5 17 5 22 来源力扣LeetCode 链接https://leetcode.cn/problems/evaluate-reverse-polish-notation class Solution {
public:int evalRPN(vectorstring tokens) {stacklong long sta;for(int i0;itokens.size();i){if(tokens[i]||tokens[i]-||tokens[i]*||tokens[i]/){long long asta.top();sta.pop();long long bsta.top();sta.pop();if(tokens[i])sta.push(ba);if(tokens[i]-)sta.push(b-a);if(tokens[i]*)sta.push(b*a);if(tokens[i]/)sta.push(b/a);}elsesta.push(stoll(tokens[i])); }return sta.top();}
};