LeetCode-150-Evaluate Reverse Polish Notation

LeetCode-150-Evaluate Reverse Polish Notation,第1张

概述算法描述: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Note: Division between two intege

算法描述:

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

ValID operators are +-*/. Each operand may be an integer or another Expression.

Note:

division between two integers should truncate toward zero. The given rpn Expression is always valID. That means the Expression would always evaluate to a result and there won‘t be any divIDe by zero operation.

Example 1:

input: ["2","1","+","3","*"]Output: 9Explanation: ((2 + 1) * 3) = 9

Example 2:

input: ["4","13","5","/","+"]Output: 6Explanation: (4 + (13 / 5)) = 6

Example 3:

input: ["10","6","9","-11","*","17","+"]Output: 22Explanation:   ((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

解题思路:逆波特兰表达式,用栈辅助模拟。

    int evalrpn(vector<string>& tokens) {        if(tokens.size()==0) return 0;        stack<int> stk;        for(auto c : tokens){            if(c == "+" || c == "-" || c== "*" || c=="/"){                int right = stk.top();                stk.pop();                int left = stk.top();                stk.pop();                int ans;                if(c == "+") ans = left + right;                if(c == "-") ans = left - right;                if(c == "*") ans = left * right;                if(c == "/") ans = left / right;                stk.push(ans);            }else{                stk.push(stoi(c));            }        }        return stk.top();    }
总结

以上是内存溢出为你收集整理的LeetCode-150-Evaluate Reverse Polish Notation全部内容,希望文章能够帮你解决LeetCode-150-Evaluate Reverse Polish Notation所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1231633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存