逆波兰表达式

运用lambda表达式和包装器

150. 逆波兰表达式求值 – 力扣(LeetCode)

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
    stack<long long> s;
    map<string,function<long long(long long,long long)>> func=
    {
//包装四种情况函数(lambda表达式) {
"+",[](long long a,long long b){return a+b;}}, {"-",[](long long a,long long b){return a-b;}}, {"*",[](long long a,long long b){return a*b;}}, {"/",[](long long a,long long b){return a/b;}} }; for(auto& e:tokens) { if(func.count(e))//判断e是否存在map中 存在就是操作符 { long long right=s.top();//因为是栈 所以是先取到右 才能取到左 s.pop(); long long left=s.top(); s.pop(); s.push(func[e](left,right));//放入map里计算 } else//不存在就是操作数 { s.push(stoll(e));//操作数就放入栈内 } } return s.top(); } };

Original: https://www.cnblogs.com/LonelyMoNan/p/16732375.html
Author: lemon-Breeze
Title: 逆波兰表达式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607305/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • VMware Workstation 16.2 Pro for Linux SLIC 2.6 & Unlocker

    macOS Unlocker,支持 macOS Monterey 请访问原文链接:VMware Workstation 16 Pro Unlocker & OEM BIOS…

    Linux 2023年5月27日
    0112
  • .NET使用StackExchange.Redis

    csharp;gutter:true; using StackExchange.Redis; using System; using System.Collections.Gene…

    Linux 2023年5月28日
    0105
  • SpringBoot入门-Redis(六)

    package com.vast; import com.vast.dao.AccountRepository; import com.vast.dao.IAccountMybat…

    Linux 2023年5月28日
    080
  • 计算机系统实验

    实验三 一 实验目的 理解堆栈结构,利用缓冲区进行代码攻击 二 准备工作 配置实验环境(IDA、gcc),阅读实验指导书 三 实验过程 0x01第一关 首先理解堆栈的结构 /* 第…

    Linux 2023年6月8日
    0117
  • 命令行下Git调用IDEA的diff功能

    本文将介绍, 如何在命令行下, 让git diff命令调用IDEA的diff功能! IDEA diff IDEA虽然是一个图形化工具, 其实也提供了极少一部分命令行接口, 将IDE…

    Linux 2023年6月7日
    0127
  • zabbix监控配置项配置

    1.手动添加监控项 2. 使用模板添加监控项 3.0 邮件告警 创建主机并加入主机组 1.手动添加监控项 即获取数据的监控指标增加用户,修改用户,删除用户etc/passwd文件都…

    Linux 2023年6月7日
    0153
  • jenkins安装及配置(一)

    一、安装 1、以jenkins.war包方式安装 官网地址:https://mirrors.jenkins.io/war-stable/latest/jenkins.war 运行命…

    Linux 2023年6月14日
    0105
  • 【证券从业】金融基础知识-第四章 股票01

    注1:后续学习并整理到第八章,全书完结后再合并成一个笔记进行源文件分享 注2:本章内容巨多,大约分为三篇文章记录消化 posted @2022-06-05 00:25 陈景中 阅读…

    Linux 2023年6月13日
    0127
  • jmeter 安装与环境变量配置

    安装jmeter首先要安装与jmeter版本兼容的JDK,安装完成JDK后才能安装jmeter,JDK可以自行在官网下载或者通过360软件管家进行下载。 1、下载安装JDK 安装完…

    Linux 2023年6月8日
    0108
  • IDEA对数据库、表、记录的(增删改查可视化操作)、数据库安全性问题的演示

    演示脏读 一个事物里面读到了另外一个事物没有提交的数据: read uncommitted 1.开启A,B窗口 2.分别查询A,B的隔离级别 select @@tx_isolati…

    Linux 2023年6月6日
    0118
  • 分布式锁

    非分布式下使用锁 利用版本号来检测数据是否发生变化,从而判断是否能进行更新 JAVA 使用比较交换机制-CAS(Compare And Swap)机制实现 i++非线程安全,使用原…

    Linux 2023年6月7日
    0107
  • Docker基础知识

    Docker 是什么 Docker 经常被提起的特点: Docker 技术的基础: Docker 组件: Docker 安装 Docker 常见命令 容器相关操作 获取容器相关信息…

    Linux 2023年6月7日
    0125
  • sql server的简单分页

    — 显示前条数据 select top(4) * from students; –pageSize: 每页显示的条数 –pageNow: 当前页…

    Linux 2023年6月7日
    0135
  • CentOS shell中的变量

    shell中的变量 变量的介绍 变量即变化的量,核心是”变”与”量”二字,变即变化,量即衡量状态。 量:是记录现实世界当中的某种状态…

    Linux 2023年6月7日
    0108
  • 数据库常用函数

    一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然…

    Linux 2023年6月13日
    0132
  • 初识pytest

    现在这份工作一直做硬件和算法方面,但本人还是很喜欢玩web,所以自学分享一下。 如何安装pytest 其实很简单 pip install pytest pip install -U…

    Linux 2023年6月8日
    0111
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球