Leetcode 之Evaluate Reverse Polish Notation(41)
Posted 牧马人夏峥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 之Evaluate Reverse Polish Notation(41)相关的知识,希望对你有一定的参考价值。
很简单的一道题,定义一个栈保留操作数,遇操作符则弹出运算即可。
bool isOperator(string &op) { //注意用法 return op.size() == 1 && string("+-*/").find(op) != string::npos; } int evalRPN(vector<string> &tokens) { stack<string> s; for (auto token : tokens) { if (!isOperator(token)) { //如果是操作数,则入栈 s.push(token); } else { //如果是操作符,则弹出操作数进行运算 int y = stoi(s.top()); s.pop(); int x = stoi(s.top()); s.pop(); if (token == "+")x += y; if (token == "-")x -= y; if (token == "*")x *= y; if (token == "/")x /= y; s.push(to_string(x)); } } return stoi(s.top()); }
以上是关于Leetcode 之Evaluate Reverse Polish Notation(41)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 399. Evaluate Division
Leetcode 399. Evaluate Division