栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LeetCode Java刷题笔记—150. 逆波兰表达式求值

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode Java刷题笔记—150. 逆波兰表达式求值

150. 逆波兰表达式求值

根据逆波兰表示法(又叫做后缀表达式),求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

中等难度。逆波兰表示式可用栈进行计算,遇到数字就将数字压栈,遇到操作符,就将栈顶的两个元素取出计算,将计算结果再压入栈即可,实际上还是比较简单的。

public int evalRPN( String[] tokens ){

   Stack stack = new Stack<>();
   for( String s : tokens ){
      switch( s ){
         //注意是num2是第一个操作数,num1是第二个操作数
         case "+":{
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 + num1 );
            break;
         }
         case "-":{
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 - num1 );
            break;
         }
         case "*":{
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 * num1 );
            break;
         }
         case "/":{
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 / num1 );
            break;
         }
         default:
            stack.push( Integer.valueOf( s ) );
            break;
      }
   }
   return stack.pop();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号