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

逆波兰表达式求值

时间:2024-01-20 20:34:22浏览次数:36  
标签:intStack right return int 波兰 str 求值 表达式 left

 

 

/*
 * @lc app=leetcode.cn id=150 lang=cpp
 *
 * [150] 逆波兰表达式求值
 */

// @lc code=start
class Solution
{
public:
    int calc(int left, int right, char sign)
    {
        switch (sign)
        {
        case '+':
            return left + right;
        case '-':
            return left - right;
        case '*':
            return left * right;
        case '/':
            return left / right;
        }

        throw "";
    }
    int evalRPN(vector<string> &tokens)
    {
        stack<int> intStack;

        for (string &str : tokens)
        {

            if (str.size() == 1 &&
                (str[0] == '+' || str[0] == '-' || str[0] == '*' || str[0] == '/'))
            {

                // 遇到运算符,开始运算
                int right = intStack.top();
                intStack.pop();
                int left = intStack.top();
                intStack.pop();
                intStack.push(calc(left, right, str[0]));
                
            }
            else
            {
                // 遇到数字,直接入数字栈

                intStack.push(stoi(str));
            }
        }

        return intStack.top();
    }
};
// @lc code=end

 

标签:intStack,right,return,int,波兰,str,求值,表达式,left
From: https://www.cnblogs.com/angdh/p/17977097

相关文章

  • 细说JavaScript表达式和运算符号(JavaScript表达式和运算符号详解)
    除了简单的表达式还有复杂的表达式,它是由简单表达式构成的,将简单表达式组合成复杂表达式最常见的方法就是使用运算符![细说JavaScript表达式和运算符号详解](https://img-blog.csdnimg.cn/direct/2781400b25be4b38bbf99d0c1b93d169.png)一、表达式表达式分为简单表达式和复杂......
  • 使用Cron表达式调度多个任务的实现方法
    Cron表达式是一种用于指定定时任务执行时间的字符串格式。通过合理运用Cron表达式,我们可以方便地调度多个任务,并按照设定的时间规则自动执行。本文将介绍如何使用Cron表达式来调度多个任务,以帮助您更好地管理和执行定时任务。一、什么是Cron表达式Cron表达式是一种由6个或7个字段组......
  • 开源:Taurus.DTS 微服务分布式任务框架,支持即时任务、延时任务、Cron表达式定时任务和
    前言:在发布完:开源:Taurus.DTC微服务分布式事务框架,支持.Net和.NetCore双系列版本,之后想想,好像除了事务外,感觉里面多了一个任务发布订阅的基础功能。本想既然都有了基础发布订阅功能了,那要不要顺带加上延时发布功能呢?加上了会不会让事务组件不纯了?经过一翻深思,是在其上补上......
  • 无涯教程-SQLite - 表达式
    SQL表达式类似于公式,它们以查询语言编写,您还可以用于向数据库查询一组特定的数据。Expressions-语法考虑一下SELECT语句的基本语法,如下所示:SELECTcolumn1,column2,columnNFROMtable_nameWHERE[CONDITION|EXPRESSION];以下是不同类型的SQLite表达式。Expressio......
  • DevExpress Web Report Designer中文教程 - 如何自定义控件和表达式注册?
    获取DevExpressv23.2正式版下载DevExpress技术交流群9:909157416      欢迎一起进群讨论自定义控件集成DevExpress Reports中的自定义报表控件注册变得更加容易,为了满足web开发人员的需求,DevExpressv23.1+包括简化的自定义控件注册支持(在服务器级别实现)。如果您的解决......
  • 正则表达式复习七——JavaScript 中使用
    JavaScript使用JavaScript的正则表达式是由RegExp对象表示的,同时也可以使用正则表达式字面量。1.使用RegExp对象letpattern=newRegExp("pattern","flags");pattern是字符串形式的正则表达式模式。flags是字符串形式的修饰符,可以包含i,g,m等。letpattern......
  • 正则表达式
    正则表达式匹配符d?d出现0/1次a*a可以出现0/多次a+a出现一次以上a{6}a出现6次a{2,}a出现2次以上a{2,6}a出现2-6次匹配多个字符:(ab)+ab出现一次以上或运算a(cat|dog)匹配acatoradogacat|dog匹配acatordog字符类匹配由abc构成的数据【abc】+abc出现一次......
  • 多项式求值软件下载Polynomial evaluation software mus 2025 download
    本软件是Windows下64位软件。本软件能计算如a0+a1*x+a2*x^2+......+an*x^n的式子的对b1的求值结果。具体的方法就是在多多项式系数区输入a0到an的值,然后点击计算多项式的结果即可在结果栏算出结果。最大项数为1000项。多项式系数输入时1项1行,从上到下是a0到an,中间不能空行。T......
  • 正则表达式复习六——常见案例
    常用案例1.匹配邮箱地址/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/2.匹配URL/^(https?|ftp):\/\/(-\.)?([^\s\/?\.#-]+\.?)+(\/[^\s]*)?$/3.匹配日期(YYYY-MM-DD)/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/4.手机号码/^[0-9]{10}$/5.身份证......
  • halcon #正则表达式
    此处提供了正则表达式语法的摘要。基本上正则表达式中的每个字符都表示要匹配的文本,除了以下具有特殊含义的符号(所描述的语法与Perl兼容):^匹配字符串的开头$匹配字符串末尾(允许使用尾随换行符).匹配除换行符以外的任何字符[...]匹配括号中列出的任何字符文本......