👨🎓作者简介:一位喜欢写作,计科专业大二菜鸟
🏡个人主页:starry陆离
🕒首发日期:2022年7月19日星期二
🌌上期文章:『牛客|每日一题』有效括号序列_
📚订阅专栏:『牛客刷题集锦』
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦
计算逆波兰表达式:遇到数字就压栈,遇到运算符就弹出栈顶两个数进行计算,然后把计算结果压入栈中,直到栈中只剩下最后一个数,就是整个逆波兰表达式的计算结果。
"+","-","*","/"
字符串的时候,则弹出栈顶两个数,进行相应的运算(先弹出来的是被操作数,后弹出来的是操作数;如减法时,是先弹出来的是被减数,后弹出来的是减数)import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* @param tokens string字符串一维数组
* @return int整型
*/
public int evalRPN (String[] tokens) {
// write code here
Stack<Integer>stk=new Stack<>();
for(int i=0;i<tokens.length;++i){
String s=tokens[i];
if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")){
stk.push(cal(stk.pop(),s,stk.pop()));
}else{
stk.push(Integer.parseInt(s));
}
}
return stk.pop();
}
public Integer cal(Integer b,String s,Integer a){
switch(s){
case "+":return a+b;
case "-":return a-b;
case "*":return a*b;
case "/":return a/b;
}
return -1;
}
}
📚订阅专栏:『牛客刷题集锦』
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦