首页 > 其他分享 >LeetCode 150. 逆波兰表达式求值

LeetCode 150. 逆波兰表达式求值

时间:2022-08-27 10:11:24浏览次数:76  
标签:150 num1 num2 int stack tokens push 求值 LeetCode

思路:
当字符串为运算符号是弹出栈中两个数字进行运算
stoi("1") 将string转换为int

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<int> stack;

        for (int i = 0; i < tokens.size(); i ++) {
            if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {
                int num1 = stack.top();
                stack.pop();
                int num2 = stack.top();
                stack.pop();

                if (tokens[i] == "+") stack.push(num2 + num1);
                else if (tokens[i] == "-") stack.push(num2 - num1);
                else if (tokens[i] == "*") stack.push(num2 * num1);
                else stack.push(num2 / num1);
            }
            else stack.push(stoi(tokens[i]));
        }

        int res = stack.top();

        return res;
    }
};

标签:150,num1,num2,int,stack,tokens,push,求值,LeetCode
From: https://www.cnblogs.com/hjy94wo/p/16629881.html

相关文章

  • LeetCode 20. 有效的括号
    classSolution{public:boolisValid(strings){stack<char>stack;for(inti=0;i<s.size();i++){if(s[i]==')'||......
  • LeetCode 1047. 删除字符串中的所有相邻重复项
    classSolution{public:stringremoveDuplicates(strings){stack<char>stack;for(inti=0;i<s.size();i++){if(stac......
  • LeetCode 14. 最长公共前缀
    题目题目链接:https://leetcode.cn/problems/longest-common-prefix/编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例1:输......
  • leetcode 205. Isomorphic Strings 同构字符串(简单)
    一、题目大意给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以按某种映射关系替换得到t,那么这两个字符串是同构的。每个出现的字符都应当映射到另一......
  • LeetCode 232. 用栈实现队列
    思路:用两个栈实现队列pop操作,若out栈为空则先将in中元素push进out,再pop出out中元素peek操作,直接调用pop,在将pop出元素push进outclassMyQueue{public:stack<int......
  • LeetCode 链表的中间结点算法题解 All In One
    LeetCode链表的中间结点算法题解AllInOnejs/ts实现重排链表链表的中间结点原理图解//快慢指针functionmiddleNode(head:ListNode|null):ListNode|n......
  • LeetCode 每日一题 1302. 层数最深叶子节点的和
    题目链接1302.层数最深叶子节点的和注意事项要用非递归的方式求二叉树深度(即层次遍历BFS)代码classSolution{public:intdeepestLeavesSum(TreeNode*root){......
  • leetcode147:对链表进行插入排序
    packagecom.mxnet;publicclassSolution147{publicstaticvoidmain(String[]args){}/***Q:给定单个链表的头head,使用插入排序对链......
  • leetcode-416-dp
    /**<p>给你一个<strong>只包含正整数</strong>的<strong>非空</strong>数组<code>nums</code>。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相......
  • LeetCode 92. 反转链表 II
    思路将子链表切割下来并记录左节点前一个节点pre和右节点下一个节点sucess反转子链表后,pre指向反转后的子链表,左节点(此时为子链表的尾节点指向sucess)/***Definition......