码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 栈与队列--逆波兰表达式求值


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

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

    说明:

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

    示例 1:

    • 输入: ["2", "1", "+", "3", " * "]
    • 输出: 9
    • 解释: 该算式转化为常见的

    逆波兰表达式主要有以下两个优点:

    • 去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。

    • 适合用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中。

    1. import java.util.Deque;
    2. import java.util.LinkedList;
    3. public class Pop {
    4. public int evalRPN(String[] tokens) {
    5. Deque stack = new LinkedList();
    6. for (String s : tokens) {
    7. if ("+".equals(s)) { // leetcode 内置jdk的问题,不能使用==判断字符串是否相等
    8. stack.push(stack.pop() + stack.pop()); // 注意 - 和/ 需要特殊处理
    9. } else if ("-".equals(s)) {
    10. stack.push(-stack.pop() + stack.pop());
    11. } else if ("*".equals(s)) {
    12. stack.push(stack.pop() * stack.pop());
    13. } else if ("/".equals(s)) {
    14. int temp1 = stack.pop();
    15. int temp2 = stack.pop();
    16. stack.push(temp2 / temp1);
    17. } else {
    18. stack.push(Integer.valueOf(s));
    19. }
    20. }
    21. return stack.pop();
    22. }
    23. public static void main(String[] args) {
    24. String[] tokens = {"2", "1", "+", "3", "*"};
    25. Pop pop = new Pop();
    26. int res = pop.evalRPN(tokens);
    27. System.out.println(res);
    28. }
    29. }

  • 相关阅读:
    沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置
    Spark Executor端日志打印的方法
    0.Flask入门
    Cesium快速上手7-3dtiles加载
    C语言:读文件(附完整源码)
    中间件 | Redis - [分布式锁 & 事务]
    linux之基础shell脚本编程3 函数和数组
    MDC 实现 traceId 记录
    《uni-app》npm详解及在uni-app中对npm的支持
    在Spring Boot中使用进程内缓存和Cache注解
  • 原文地址:https://blog.csdn.net/weixin_56194193/article/details/132913146
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号