LeetCode 150 逆波兰表达式求值

简介: 构造一个栈,遇到运算符就弹出进行运算

题目

image.png


思路

构造一个栈,遇到运算符就弹出进行运算

class Solution {
    public int evalRPN(String[] tokens) {
        Deque<Integer> stack = new ArrayDeque<>();
        for(String s : tokens){
            int num1,num2;
            //正则表达式匹配数字
            if(s.matches("\\d+")){
                int num = Integer.parseInt(s);
                stack.push(num);
            }else if(s.length()>1 && s.charAt(0)=='-'){//匹配负数
                    int num = Integer.parseInt(s);
                    stack.push(num);
                }else{
                switch(s){
                    case "+":
                        num1 = stack.pop();
                        num2 = stack.pop();
                        stack.push(num1+num2);
                        break;
                    case "-":
                        num1 = stack.pop();
                        num2 = stack.pop();
                        stack.push(num2-num1);
                        break;
                    case "*":
                        num1 = stack.pop();
                        num2 = stack.pop();
                        stack.push(num1*num2);
                        break;
                    case "/":
                        num1 = stack.pop();
                        num2 = stack.pop();
                        stack.push(num2/num1);
                        break;
                }
            }
        }
        return stack.pop();
    }
}


目录
打赏
0
0
0
0
37
分享
相关文章
|
9月前
|
golang力扣leetcode 399.除法求值
golang力扣leetcode 399.除法求值
67 0
力扣经典150题第五十五题:逆波兰表达式求值
力扣经典150题第五十五题:逆波兰表达式求值
70 1
|
9月前
|
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
74 0
|
9月前
leetcode代码记录(逆波兰表达式求值
leetcode代码记录(逆波兰表达式求值
51 0
leetcode 399 除法求值
leetcode 399 除法求值
66 1
|
9月前
|
LeetCode题解-逆波兰表达式求值-Java
逆波兰表达式求值-Java
43 0
|
9月前
|
Go
golang力扣leetcode 150.逆波兰表达式求值
golang力扣leetcode 150.逆波兰表达式求值
45 0
☆打卡算法☆LeetCode 150. 逆波兰表达式求值 算法解析
☆打卡算法☆LeetCode 150. 逆波兰表达式求值 算法解析
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
148 2