首页 > 其他分享 >LeetCode刷题记录.Day27

LeetCode刷题记录.Day27

时间:2022-11-27 22:33:57浏览次数:83  
标签:num1 num2 Day27 long st tokens push LeetCode 刷题

逆波兰表达式求值

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
    stack<long long> st;
    for(int i = 0; i < tokens.size(); i++){
        //检索到运算符号
        if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/"){
            long long num1 = st.top();
            st.pop(); //数字出栈
            long long num2 = st.top();
            st.pop(); //数字出栈
            //进行一次运算,运算后的数字压入栈
            if (tokens[i] == "+") st.push(num2 + num1);
            if (tokens[i] == "-") st.push(num2 - num1);
            if (tokens[i] == "*") st.push(num2 * num1);
            if (tokens[i] == "/") st.push(num2 / num1);            
        }
        else{
            st.push(stoll(tokens[i]));//栈中最后的数字就是计算结果
        }
    }
    int result = st.top();
    return result;
}
};

和昨天的题目思想一样,通过一个循环进行出入栈操作,来实现递归操作表达式的目的。

标签:num1,num2,Day27,long,st,tokens,push,LeetCode,刷题
From: https://www.cnblogs.com/tianmaster/p/16930892.html

相关文章

  • c/c++刷题中的输入输出
    c/c++中的输入输出#include<iostream>usingnamespacestd;intmain(){//c语言中的输入输出inta,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);......
  • day27
    【102二叉树的层序遍历】/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*T......
  • #yyds干货盘点# LeetCode程序员面试金典:判定字符是否唯一
    题目:实现一个算法,确定一个字符串s的所有字符是否全都不同。示例1:输入:s="leetcode"输出:false示例2:输入:s="abc"输出:true代码实现:classSolution{public......
  • leetcode 56. 合并区间 js实现
    以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i]=[starti,endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入......
  • leetcode_D4_58最后一个单词的长度
    1.题目  2.解一2.1  2.2  2.3  主要思路:3种方法相差不大,思路基本一致,主要是细节处理上有所不同,都是首先去掉字符串最前面和最后面的空元素,然后从最后......
  • 宝宝精刷题笔记 面试题 02.05. 链表求和
    题目描述给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例1:输入......
  • 动态规划算法图文详解(Kotlin语言):二维矩阵中找到只包含 1 的最大正方形(LeetCode-22
    题目描述在一个由0和1组成的二维矩阵内,找到只包含1的最大正方形,并返回其面积。示例:输入:1010010 ​​​11​​​ 111 ​​​11​​​ 110010输出:4......
  • 力扣 leetcode 1752. 检查数组是否经排序和轮转得到
    问题描述给你一个数组nums。nums的源数组中,所有元素与nums相同,但按非递减顺序排列。如果nums能够由源数组轮转若干位置(包括0个位置)得到,则返回true;否则,返回fa......
  • 移除元素-LeetCode27 双指针
    力扣链接:https://leetcode.cn/problems/remove-element/题目  给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长......
  • LeetCode刷题记录.Day26
    删除字符串中所有相邻重复项1047.删除字符串中的所有相邻重复项-力扣(LeetCode)classSolution{public:stringremoveDuplicates(strings){stack<ch......