LeetCode 150 Evaluate Reverse Polish Notation

xiaoxiao2021-02-27  464

150. Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +, -, *, /. Each operand may be an integer or another expression.

Some examples: [“2”, “1”, “+”, “3”, ““] -> ((2 + 1) 3) -> 9

将逆波兰式计算结果。难度Medium.

class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> sta; for(int i = 0; i < tokens.size(); i++) { string s = tokens[i]; if(s[s.length()-1] >= '0' && s[s.length()-1] <='9') { int j =0; if(s[0]=='-') j = 1; int num = 0; for( ; s[j]; j++) num = num * 10 + s[j] - '0'; sta.push(s[0]=='-'? -num :num); } else { int opt2 = sta.top(); sta.pop(); int opt1 = sta.top(); sta.pop(); if(s[0]=='+') sta.push(opt1 + opt2); else if(s[0]=='-') sta.push(opt1 - opt2); else if(s[0]=='*') sta.push(opt1 * opt2); else sta.push(opt1 / opt2); } } return sta.top(); } };
转载请注明原文地址: https://www.6miu.com/read-2624.html

最新回复(0)