2021.9.24 力扣-逆波兰表达式求值

题目描述:

根据 逆波兰表示法,求表达式的值。

有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

说明:

整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

方法一:

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<int> ints;
        for (string c : tokens)
        {
            if (c == "+")
            {
                int x = ints.top();
                ints.pop();
                int y = ints.top();
                ints.pop();
                ints.push(x + y);
            }
            else if (c == "-")
            {
                int x = ints.top();
                ints.pop();
                int y = ints.top();
                ints.pop();
                ints.push(y - x);
            }
            else if (c == "*")
            {
                int x = ints.top();
                ints.pop();
                int y = ints.top();
                ints.pop();
                ints.push(x * y);
            }
            else if (c == "/")
            {
                int x = ints.top();
                ints.pop();
                int y = ints.top();
                ints.pop();
                ints.push(y / x);
            }
            else
            {
                int a = stoi(c);    //将字符串转换为数字
                ints.push(a);
            }
        }
        return ints.top();
    }
};

以前老师让写过求解任意一个表达式的值,所以相对来说这题还算简单。

题目用到的字符串转换为数字的函数为stoi()。

上一篇:Java插入排序


下一篇:力扣 66. 加一