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

150. 逆波兰表达式求值c

时间:2024-03-19 16:59:11浏览次数:23  
标签:150 return index int tokens 求值 表达式

int f(int a ,int b,char c){
    if(c=='+') return a+b;
    if(c=='-') return a-b;
    if(c=='/') return a/b;
    return a*b;
}

int evalRPN(char** tokens, int tokensSize) {
    int* stack=(int*)malloc(sizeof(int)*tokensSize);
    int top=0;
    int index=0;
    while(index<tokensSize){
        if( tokens[index][0] >='0' && tokens[index][0]<='9' || (tokens[index][0] =='-' &&  tokens[index][1]!=0)  ){
            stack[top++]=atoi(tokens[index++]);
        }else{
            int b=stack[--top];
            int a=stack[--top];
            int c=f(a,b,tokens[index][0]);
            printf("%d %d %c %d",a,b,tokens[index][0],c);
            stack[top++]=c;
            index++;
        }
    }
    return stack[0];
}

 

标签:150,return,index,int,tokens,求值,表达式
From: https://www.cnblogs.com/llllmz/p/18083352

相关文章

  • java核心技术卷1 第六章:接口、lambda表达式与内部类
    接口接口不是类,而是描述了符合这个接口的类应该做什么,描述了一组抽象的需求,而没有指定怎么做接口中的所有方法自动是public,接口中声明方法不需要加public(java规范,减少不必要的冗余声明,即使一些程序员为了清晰习惯加上public)实现接口时,需要加上public,不然默认将权限设为了defa......
  • Python——Regular Expression(正则表达式)RE
    正则表达式是一种强大的文本处理工具,它使用一种特殊的语法来匹配、查找以及替换字符串中的字符组合。在Python中,正则表达式,"re模块"。英文叫做"RegularExpression"。re模块是Python中用于处理正则表达式的标准库。它提供了多个函数来执行正则表达式的匹配、查找、替换和分割操......
  • 洛谷-P1449 后缀表达式
    目录 何为后缀表达式?模拟过程AC代码采用STL的stack题目链接:P1449后缀表达式-洛谷|计算机科学教育新生态(luogu.com.cn) 何为后缀表达式?那后缀表达式是怎么算的呢那显然就需要引用最开始说的栈了因为后缀表表达式本来就是栈的一种应用那么现在来说说后缀表......
  • 正则表达式(java)
    正则表达式多用于字符串匹配,检索。基础符号[]意义:或a[bc]等于ab或ac()意义:和(abc)只等于abc[^]意义:否a[^bc]表示不等于ab或ac*意义:零或更多ab*等于a,ab,abb...+意义:1或更多ab+等于abb,abbb...[0-9]+等于长度大于一的数字序列。[A-Z]+等于长度大......
  • 表达式求值
    #include<iostream>#include<unordered_map>usingnamespacestd;constintN=10010;charop[N];intnum[N];intidx1=-1,idx2=-1;//模拟栈voidcal(){intb=num[idx2--];inta=num[idx2--];//注意a,b顺序charc=op[idx1--];intx=0;i......
  • 实验一 c语言开发环境使用和数据类型、运算符、表达式
    task1`#include<stdio.h>include<stdlib.h>intmain(){printf("o\to\n");printf("<H>\t<H>\n");printf("II\tII\n");system("pause:");return0;}`task2`#include......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    点击查看代码#include<stdio.h>#include<stdlib.h>intmain(){ printf("oo\n"); printf("<H><H>\n"); printf("IIII\n"); system("pause"); return0;}点击查看代码#include<stdio......
  • 代码随想录算法训练营第十天|LeetCode 20.有效的括号、1047.删除字符串中的所有相邻重
    20.有效的括号题目链接:https://leetcode.cn/problems/valid-parentheses/description/解题思路:题目转化:三种类型的括号,需要做匹配匹配规则是:左右括号的类型要匹配、数量要一致,而且要按照顺序匹配例子是:“()”、“(){}[]”、“(([]))”条件转化:按照顺序匹配:......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    ......
  • Java 8中 lambda表达式、Stream API的常见用法
    1、取出集合中的某个字段://拿到车辆idsList<Long>carIds=parkCarInDbList.stream().map(ParkCar::getId).collect(Collectors.toList());2、集合直接进行遍历然后进行相关操作:List<Car>cars=carService.getListByCarId(carIds);cars.forEach(car->......