标签:eval tput ken each any data- solution should target
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are +
, -
, *
, /
. Each operand may be an integer or another expression.
Note:
Example 1:
Input: ["2", "1", "+", "3", "*"] Output: 9 Explanation: ((2 + 1) * 3) = 9
Example 2:
Input: ["4", "13", "5", "/", "+"] Output: 6 Explanation: (4 + (13 / 5)) = 6
Example 3:
Input: ["10", "6", "9", "3", "+", "-11", "*", "/", "*", "17", "+", "5", "+"] Output: 22 Explanation: ((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
Solution:
使用栈即可
1 class Solution { 2 public: 3 int evalRPN(vector<string> &tokens) { 4 if (tokens.size() == 0)return 0; 5 stack<int>s; 6 for (auto a : tokens) 7 { 8 if (a == "+" || a == "-" || a == "*" || a == "/") 9 { 10 int num2 = s.top(); 11 s.pop(); 12 int num1 = s.top(); 13 s.pop(); 14 int res = 0; 15 if (a == "+") 16 res = num1 + num2; 17 else if (a == "-") 18 res = num1 - num2; 19 else if (a == "*") 20 res = num1 * num2; 21 else 22 res = num1 / num2; 23 s.push(res); 24 } 25 else 26 s.push(atoi(a.c_str())); 27 } 28 return s.top(); 29 } 30 };
力扣算法题—150. Evaluate Reverse Polish Notation
标签:eval tput ken each any data- solution should target
原文地址:https://www.cnblogs.com/zzw1024/p/11756316.html