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

LeetCode.150 逆波兰表达式求值

时间:2023-02-02 16:02:18浏览次数:49  
标签:LeetCode.150 int equals pop tokens push 求值 stack 表达式

1.题目

给你一个字符串数组 ​​tokens​​​ ,表示一个根据 ​​逆波兰表示法​​ 表示的算术表达式。

请你计算该表达式。返回一个表示表达式值的整数。

2.代码

class Solution {
public int evalRPN(String[] tokens) {
Deque<Integer> stack = new LinkedList<>();
for(int i=0; i<tokens.length; i++){
if(tokens[i].equals("+")){//这里一定要注意是数组中的元素跟+号比,不是i啊!!!i是int类型的啊!
stack.push(stack.pop()+stack.pop());//有趣!添加进来的是抛出去的和
}else if("-".equals(tokens[i])){
stack.push(-stack.pop()+stack.pop());//注意这里要分清是谁减谁,先出栈的应该是被减数
}else if("*".equals(tokens[i])){
stack.push(stack.pop()*stack.pop());
}else if("/".equals(tokens[i])){
int temp1 = stack.pop();//这里注意最后要获得的是相除之后获得的整数,那么就可以先把每一个数先变成整数,再相除!
int temp2 = stack.pop();
stack.push(temp2/temp1);//谁除谁也要注意顺序
}else{
stack.push(Integer.valueOf(tokens[i]));//注意这里实现把字符串变成int的包装类Integer,如果是变成int,就用Integer.parseInt(String s)!!
}
}
return stack.pop();//最后栈里面应该只剩下一个元素,直接返回即可!!

}
}

标签:LeetCode.150,int,equals,pop,tokens,push,求值,stack,表达式
From: https://blog.51cto.com/u_15806469/6033723

相关文章

  • 【Javaweb】EL表达式
    什么是EL表达式,EL表达式的作用?EL表达式的全称是:ExpressionLanguage。是表达式语言。EL表达式的什么作用:EL表达式主要代替jsp页面中的表达式脚本在jsp页面中进行数据的输......
  • Python正则表达式匹配一段英文中包含关键字的句子
    1.问题/需求在含有多行文字的英文段落或一篇英文中查找匹配含有关键字的句子。例如在以下字符串:text='''TodayIregisteredmypersonalbloginthecnblogsandw......
  • 【Regex】判断密码强度的正则表达式
    原文地址https://www.cnblogs.com/younShieh/p/17082522.html❤如果本文对你有所帮助,不妨点个关注和推荐呀,这是对笔者最大的支持~❤ 需求  最近在最做一个软件的注......
  • MySQL(三)用正则表达式搜索
    正则表达式是用来匹配文本的特殊的串(字符集合),将一个模式(正则表达式)与一个文本串进行比较;所有种类的程序设计语言、文本编辑器、操作系统等都支持正则表达式,正则表达式用正则......
  • java正则表达式不包含特殊字符验证
    原文链接:https://blog.csdn.net/weixin_39625782/article/details/114674258packagecom.sodii.regex.demo;importjava.util.regex.Matcher;importjava.util.regex.Pa......
  • 栈实现中缀表达式
    栈实现中缀表达式1.创建两个栈,一个用来存储数字一个用来存储操作符号2.判断每一个字符是数字还是操作符3.如果是数字,直接存入数栈中4.如果是符号,看符号栈是否为空,如果为空直......
  • 逆波兰表达式/中缀表达式
    逆波兰表达式/中缀表达式1.先定义一个方法分割字符串每个数据,然后存到集合里面2.然后在新的方法中定义一个栈来存储数据具体实现如下://字符串转换为list集合publicst......
  • 正则表达式
    视频:正则表达式30分钟入门40分钟进阶(绝对能学会)【二倍速观看】测试网站:正则表达式在线测试【测试+可视化】内容回忆:参考手册......
  • 【Matlab学习2.3】矩阵求值
    方阵的行列式值把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为所对应的行列式的值。det(A):求方阵A所对应的行列式的值。 例2.3.1:验证det(A-1)=1/det(......
  • MySQL------8.0新特性:公用表表达式
    公用表表达式(或通用表表达式)简称为CTE(CommonTableExpressions)。CTE是一个命名的临时结果集,作用范围是当前语句。CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点......