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

150. 逆波兰表达式求值 C

时间:2024-02-29 20:11:34浏览次数:29  
标签:150 int tokensSize 波兰 求值 表达式

int evalRPN(char** tokens, int tokensSize) {
    int* stack=(int*)malloc(sizeof(int)*tokensSize);
    for(int i=0;i<tokensSize;i++) stack[i]=0;
    int top=-1;
    for(int i=0;i<tokensSize;i++){
        if(tokens[i][0]=='+'){
            int tempa=stack[top--];
            int tempb=stack[top--];
            stack[++top]=tempa+tempb;
        }else if(tokens[i][0]=='/'){
            int tempa=stack[top--];
            int tempb=stack[top--];
            stack[++top]=tempb/tempa;
        }else if(tokens[i][0]=='-'&&tokens[i][1]==0){
            int tempa=stack[top--];
            int tempb=stack[top--];
            stack[++top]=tempb-tempa;
        }else if(tokens[i][0]=='*'){
            int tempa=stack[top--];
            int tempb=stack[top--];
            stack[++top]=tempb*tempa;
        }else{
            stack[++top]=atoi(tokens[i]);
        }
    }
    return stack[0];
}

结果:

标签:150,int,tokensSize,波兰,求值,表达式
From: https://www.cnblogs.com/llllmz/p/18045350

相关文章

  • 架构1500字读后感
    什么是架构#架构这个词在软件出现之前就存在,它源于建筑行业。实际上当人们产生分工,就形成了社会的架构。王概凯把架构的定义为:把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有......
  • 架构1500
    什么是架构,就是:根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。根据3,使得这些部分之间能够进行有机的联系,合并组......
  • 架构漫谈——1500字
    架构漫谈:首先是什么是架构,读完之后我自己的对架构的理解就是一种为了方便人们解决问题的一种方案,具体是怎么方便解决问题的呢? 总结下来:先对问题进行分析,再对问题进行切分,由不同的人进行不同的工作,然后使这些部分有机的结合为一个整体,这就是架构,是一个方便解决问题的过程。接......
  • .NET 全能 Cron 表达式解析库,支持 Cron 所有特性【转】
    本文简介本文将为你介绍一款在.NET环境下功能全面的Cron表达式解析库——TimeCrontab。这个库不仅支持Cron的所有特性,还提供了易于使用的API,帮助开发者轻松构建和管理定时任务。无论你是开发Web应用、后台服务还是桌面程序,TimeCrontab都能满足你的需求,让你的定时任务......
  • 前中后缀表达式学习笔记
    前言表达式是数学和计算机编程中常见的概念,用于表示运算和计算过程。前缀、中缀和后缀表达式都是不同的方式来表示数学表达式,它们在计算机科学和计算器设计中都有一定的应用。中缀表达式(InfixExpression):这是最常见的数学表达式表示方法,也是人们通常在书写数学公式时使用的方式......
  • 后缀表达式
    一、题目描述P8683[蓝桥杯2019省B]后缀表达式二、算法简析显然,这道题要用贪心思想。想当然的,我们会先进行降序排序,将大的相加,在减去小的。然而,这种想法是错误的。因为这道题要求的是后缀表达式的最大值,为了便于理解,我们转换为中缀表达式的最大值,这里就有了一个隐含条件—......
  • 正则表达式拾遗
    正则表达式拾遗正则介绍正则表达式,又称规则表达式,(RegularExpression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”),是计算机科学的一个概念。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符......
  • springBoot 整合 groovy 实现表达式解析 该示例可以用于配置告警规则
    1.引入pom<dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy</artifactId><version>3.0.9</version></dependency><dependency......
  • 正则表达式
    匹配单个英文字母匹配区间[0-9a-zA-Z]不用逗号!!匹配特殊字符匹配非集快捷方式\d匹配全数字\w匹配数字、字母和下划线\s匹配空格tab换行\bxxx\b匹配单词边界(注意不要加中括号,不加中括号指xxx作为一体,加中括号表示可拆成字母分别匹配)以上所有快......
  • 正则表达式
     介绍:一个简单的Java正则工具类,其中包含了对用户名和密码的正则表达式。 要求:用户名的正则表达式:4至8位,只能为单独的英文或中文(中文的话为四位)。密码的正则表达式:6至12位,包含字母、数字、特殊字符。publicclassRegexUtil{//用户名的正则表......