leetcode150–逆波兰表达式求值(栈/后缀表达式)

2023-10-29

根据 逆波兰表示法,求表达式的值。

有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

说明:

整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

示例 :

输入:tokens = [“2”,“1”,"+",“3”,"*"]
输出:9
解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9
贴一个贼丑的代码 心塞塞。

//咋想的啊 能写出一句
//top = top -= 2;
//无了大语了
int evalRPN(char ** tokens, int tokensSize){
    int *stack = (int *)calloc(tokensSize,sizeof(int));
    int top = 0;
    int a,b;
    // printf("%s",tokens[top]);
    for(int i = 0;i < tokensSize;i++)
    {
        char *c = tokens[i];
        // printf("%s",c);
        // printf("%c",c[0]);
        // if(c[0] >= 42 && c[0] <= 48)
            // printf("aaa");
        
        // if()/
//         // if(tokens[i] == '+' || tokens[i] == '-' || tokens[i] == '*' || tokens[i] == '/' )
        //以上注释 代表我的思考过程 到底咋判断啥是符号 小垃圾 
        if(strlen(c) == 1 && c[0] >= 42 && c[0] <= 47 )
        {
            b = stack[top-1];
            a = stack[top-2];
            top = top- 2;
            switch(c[0])
            {
                case '+':
                    stack[top++] = a+b;
                    break;
                case '-':
                    stack[top++] = a-b;
                    break;
                case '*':
                    stack[top++] = a*b;
                    break;
                case '/':
                    stack[top++] = a/b;
                    break;
            }
            
//             // stack[top++] = a
        }
        else
        {
            stack[top++] = atoi(c); //数字 									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode150–逆波兰表达式求值(栈/后缀表达式) 的相关文章

  • 排序算法总结—时间复杂度O(n^2)—冒泡/插入/选择小记

    排序算法总结 时间复杂度O n 2 冒泡 插入 选择小记 冒泡排序 最基础的排序 一层一层将最大值或最小值放到该去的位置 适用于顺序存储和链表存储 时间复杂度 O n 2 空间复杂度 O 1 稳定的排序算法 产生的有序子序列全局有序 每次有
  • leetcode线程题1116——打印零与奇偶数

    直接考虑信号量解决问题 输出完奇数偶数 释放输出0所需的信号量 对于本题没有想到的地方是调用过程 原代码编写的没有自己加入for循环 以为三个线程会不停被调用 一直不过 只输出 01 就结束了 根本没有循环起来 include
  • 排序算法总结—时间复杂度O(n)—基数排序/计数排序小记

    排序算法总结 时间复杂度O n 基数排序 基数排序 分为最高位优先和最低位优先的算法 找到最大值max 求出max的位数 在max位数max length进行循环max length趟 对于每一位进行排序 对于一个数字要会从低位一位一位取值
  • leetcode150–逆波兰表达式求值(栈/后缀表达式)

    根据 逆波兰表示法 求表达式的值 有效的算符包括 每个运算对象可以是整数 也可以是另一个逆波兰表达式 说明 整数除法只保留整数部分 给定逆波兰表达式总是有效的 换句话说 表达式总会得出有效数值且不存在除数为 0 的情况 示例 输入 toke
  • leetcode99-恢复二叉搜索树(两个空间复杂度的解法)

    恢复二叉搜索树 题目 给你二叉搜索树的根节点 root 该树中的 恰好 两个节点的值被错误地交换 请在不改变其结构的情况下 恢复这棵树 示例 思路 嘶 递归递了加一起得两个点 笔试的题是 交换了若干个相邻结点的 恢复成一颗二叉搜索树 估计就
  • 【刷题版】掌握算法的一揽子计划——深度优先搜索和回溯

    文章目录 深搜和回溯总结 基本概念 常见例题 自然数的拆分 排列型枚举 全排列 I 全排列 II 组合型枚举 组合 I 组合 II N皇后问题 一些简单的树和图上的问题 二叉树的遍历 二叉树的所有路径 岛屿的最大面积 参考资料 深搜和回溯总
  • leetcode905–按奇偶排序数组(经典/原地排序)

    经典题目 给定一个非负整数数组 A 返回一个数组 在该数组中 A 的所有偶数元素之后跟着所有奇数元素 你可以返回满足此条件的任何数组作为答案 主要要掌握最优解 这道题很简单 类快排 你不是真正的快排 Note The returned ar
  • LeetCode动态规划—跳跃游戏从跳到头到跳最少下跳到头(45、55)

    跳跃游戏 跳跃游戏 跳跃游戏 跳跃游戏 一个下标对应的值为3 那证明这个位置可以跳到前后3个位置的下标处 3均可达 如果依次遍历完这个数组 有下标在跳跃过程中最远位置仍然不可达 即证明无法到达最后一个位置 可以对每一个能作为 起跳点 的格子
  • leetcode160–相交链表(最优解/双指针)

    今天做的三道题比较简单 给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点 如果两个链表不存在相交节点 返回 null 题目数据 保证 整个链式结构中不存在环 注意 函数返回结果后 链表必须 保持其原
  • LeetCode1477-找两个和为目标值且不重叠的子数组

    给你一个整数数组 arr 和一个整数值 target 请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target 可能会有多种方案 请你返回满足要求的两个子数组长度和的 最小值 请返回满足要求的最小长度和 如果无法找到这样的
  • Leetcode53/152—最大子数组和/最大子数组乘积(状态转移方程/不熟)

    53 最大子数组和 给你一个整数数组 nums 请你找出一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 子数组 是数组中的一个连续部分 思路 aaaaa 我老不会这个题 动态规划的是首先对数组进行遍历 当前最大连续子序列和
  • 剑指 Offer 28. 对称的二叉树(递归/并且或者要考虑好)

    orz 没有思路 有了思路还是错的 递归 可以仿照归并排序 我这么觉得 两边判断 如果不是当我没说 递归停止的条件是什么 结束条件 左节点和右节点都为空 gt 倒底了都长得一样 gt true 左节点为空的时候右节点不为空 或反之 gt 长
  • leetcode剑指offer11—旋转数组的最小值(二分/边界值)

    把一个数组最开始的若干个元素搬到数组的末尾 我们称之为数组的旋转 给你一个可能存在 重复 元素值的数组 numbers 它原来是一个升序排列的数组 并按上述情形进行了一次旋转 请返回旋转数组的最小元素 例如 数组 3 4 5 1 2 为 1
  • 【刷题版】掌握算法的一揽子计划——动态规划总结

    动态规划是一种通过将原问题分解为相对简单的子问题来求解 然后将子问题的解存储起来避免之后重复计算 并最终将子问题组合成原问题的解决方法 动态规划并不算是一种具体的算法 更应该被认为是一种解决问题的思想 动态规划通常适用于具有重叠子问题和最优
  • 贼全面的计算机考研数据结构算法题集合(408+自命题均可)

    文章目录 Code 数组 合并排序的数组 约瑟夫环问题 高效解法 栈 栈实现队列 最小栈 逆波兰表达式求值 队列 设计循环队列 链表 删除链表节点 删除链表中间节点 删除链表的倒数第n个节点 删除链表中的重复元素 相交链表 链表中环的入口点
  • LeetCode二维数组例题(原地旋转和对角线遍历)-c语言

    二维数组例题 二维数组 矩阵旋转 原地旋转 对角线遍历 二维数组 矩阵旋转 原地旋转 方法一 四个角是一个循环 引申到四个块是循环 n为偶数时 枚举n2 4个位置 n为奇数时 枚举 n2 1 4个位置 void rotate int mat
  • leetcode236—二叉树的最近公共祖先(递归/深搜/理解)

    给定一个二叉树 找到该树中两个指定节点的最近公共祖先 百度百科中 最近公共祖先的定义为 对于有根树 T 的两个节点 p q 最近公共祖先表示为一个节点 x 满足 x 是 p q 的祖先且 x 的深度尽可能大 一个节点也可以是它自己的祖先 深
  • leetcode排序算法总结—时间复杂度o(nlogn)-希尔/堆排/快排/归并小记

    排序算法总结 时间复杂度O nlogn 希尔 堆排序 快排 归并 希尔排序 有一段间隔的排序 可以逐个子表进行排序 然 例如王道 都给出便于计算机进行连续访问的程序算法 即依次按元素比较不同子表进行子表的调整 时间复杂度O n 1 3 最坏
  • 通过哲学家进餐问题学习线程间协作(代码实现以leetcode1226为例)

    哲学家进餐问题 代码实现以leetcode1226为例 问题场景 解决思路 解决死锁问题 代码实现 c go 代码实现以leetcode1226为例 提到多线程和锁解决问题 就想到了os中哲学家进餐问题 问题场景 回想该问题产生场景 五个哲
  • 结构体排序问题

    题目如下 刚刚看到这道题的时候一点点思路都没有 连题目都没读懂 include

随机推荐

  • C语言静态函数

    1 C程序一直由下列部分组成 1 正文段 CPU执行的机器指令部分 一个程序只有一个副本 只读 防止程序由于意外事故而修改自身指令 2 初始化数据段 数据段 在程序中所有赋了初值的全局变量 存放在这里 3 非初始化数据段 bss段 在程序中
  • YUM命令常见用法

    Yum工作原理 YUM正常运行 需要依赖两个部分 一是YUM源端 二是YUM客户端 也即用户使用端 YUM客户端安装的所有RPM包都是来自YUM服务端 YUM源端通过HTTP或者FTP服务器发布 而YUM客户端能够 从YUM源端下载依赖的R
  • 程序员面试金典--面试26之介于0和1之间的实数,类型为double,返回它的二进制表示

    题目描述 有一个介于0和1之间的实数 类型为double 返回它的二进制表示 如果该数字无法精确地用32位以内的二进制表示 返回 Error 给定一个double num 表示0到1的实数 请返回一个string 代表该数的二进制表示或者
  • vue的基本标签

    el 挂载点 设置vue实例挂载管理元素 不能使用HTML标签和body标签 data 数据对象 methods 方法 vue实例的作用范围是 vue会管理el选项命中的元素及其内部的后代元素 vue指令 1 内容绑定 事件绑定 v tex
  • BUG——@Autowired HttpServletResponse报错(Could not autowire. No beans of ‘HttpServletResponse’ type fo)

    1 报错 Could not autowire No beans of HttpServletResponse type found 2 原因 spring团队只让HttpServletRequest自动装配功能 排除HttpServlet
  • 示波器探头的使用

    一 首先是带宽 这个通常会在探头上写明 多少MHz 如果探头的带宽不够 示波器的带宽再高也是无用 瓶颈效应 二 另外就是探头的阻抗匹配 探头在使用之前应该先对其阻抗匹配部分进行调节 通常在探头的靠近示波器一端有一个可调电容 有一些探头在靠近
  • 完整的动手指南,可在Google Colab GPU上训练你的神经网络模型

    介绍 如果你是神经网络领域的初学者 那么你可能已经使用过CPU训练模型 好吧 即使你的模型有 100000 个参数也没关系 训练模型可能需要几个小时 但是 如果你的模型有 100 亿或 200 亿个参数怎么办 像 VGG16 这样常见的 C
  • 微信小程序---微信授权弹窗实现(组件,需要地方直接调用即可)

    一 展示效果 二 使用方法 在资源处下载后 在调用页面 json usingComponents wx empower Component wx empower wx empower wxml
  • 微信小程序 app.json 里 “style“: “v2“ 的作用

    新版微信小程序的 app json 文件中多了一个 style v2 pages pages index index pages logs logs window backgroundTextStyle light navigationBa
  • 概率论与数理统计学习笔记

    第一章 随机事件与概率 第二章 随机变量及其分布 第三章 多维随机变量及其分布 第四章 大数定律与中心极限定理 第五章 统计量及其分布 第六章 参数估计 第七章 假设检验 第八章 方差分析与回归分析 第一章 随机事件与概率 1 1随机事件及
  • 单机版K8S安装及部署

    虚拟机iso下载 安装完虚拟机后 一 更新yum云 安装wget yum install wget wget version 查看wget版本 配置yum云 ll etc yum repos d 查看yum目录 cp CentOS Base
  • 我的周刊(第078期)

    我的信息周刊 记录这周我看到的有价值的信息 主要针对计算机领域 内容主题极大程度被我个人喜好主导 这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享 项目 awesome chatgpt prompts zh 1 ChatGPT
  • 自制简单U盘引导程序

    操作系统实验导航 实验一 银行家算法 https blog csdn net weixin 46291251 article details 115384510 实验二 多级队列调度和多级反馈队列调度算法 https blog csdn n
  • 最新盘点!上海值得加入的互联网公司有哪些?(文末附招聘岗位)

    暑假结束了 除了迎来了青春热烈的开学季以外 也带来了打工人备受期待的金九银十秋招季 我们在找工作时 每个人都期待能遇到一个 神仙公司 譬如丰厚的薪水 优越的晋升通道 融洽的同事关系 良好的work life balance以及自由宽松的工作
  • 计算机中常见英文术语对照表

    win Windows 操作系统 mac macOS 操作系统 英文 English 中文一 港台地区 中文二 Abstract 摘要 抽象的 摘要 抽象的 Abstraction 抽象 抽象 Access 存取 访问 Accessibil
  • Brup suite使用指南之正确安装

    这篇文章整理自 https blog csdn net LUOBIKUN article details 87457545 安装完成之后配置代理 下载地址 来自大佬的分享 提取码为 w5lg 安装教程 配置Java环境 下载好上面的分享之后
  • 刚开工,就用Python兼职赚了2800!

    前言 今天是节后开工第3天 有 节后综合症 的朋友们感觉好点了吗 lt gt 每年春节后 都会迎来Python兼职接单的高潮期 近段时间各行业对爬虫类和数分类的需求量在暴增 且很多朋友过完年也需要接单 回血 往年春节开工后 两天接单赚上万的
  • 在win10上安装go语言环境

    1 下载go环境安装包 由于官方的安装包可能很多人没办法下载到 但是可以在https golang google cn dl 下载 2 选择windows64位版下载 3 安装go 一直next 可以改文件路径 4 设置开发环境变量 右键此
  • 绝对布局优势_小米价值回归,IoT领域的规模优势和持续投入是关键

    进入2020年 手机行业特别是国内市场的竞争已经接近尾声 作为稳居全球出货量第四的小米而言 国内市场的表现并不令人满意 不过 从去年10月份开始 小米公司的股价却一直呈现出不错的上涨势头 消费者和市场逐渐认可了小米的价值 并且这种认可的趋势
  • leetcode150–逆波兰表达式求值(栈/后缀表达式)

    根据 逆波兰表示法 求表达式的值 有效的算符包括 每个运算对象可以是整数 也可以是另一个逆波兰表达式 说明 整数除法只保留整数部分 给定逆波兰表达式总是有效的 换句话说 表达式总会得出有效数值且不存在除数为 0 的情况 示例 输入 toke
Powered by Hwhale