LeetCode题解-逆波兰表达式求值-Java

简介: 逆波兰表达式求值-Java

一看就懂,用的栈,表达式求值的经典套路

class Solution {
   
    public int evalRPN(String[] tokens) {
   
        Stack<Integer> numStack=new Stack<>();
        for (String token : tokens) {
   
            if (!isOperator(token)){
   
                numStack.push(Integer.parseInt(token));
            }else {
   
                numStack.push(Operation(numStack.pop(),numStack.pop(),token.charAt(0)));
            }
        }
        return numStack.pop();
    }

    private boolean isOperator(String token) {
   
        if (token.length()>1){
   
            return false;
        }
        char first=token.charAt(0);
        return first=='+'||first=='-'||first=='*'||first=='/';
    }
    private int Operation(int one,int two,char token) {
   
        switch (token){
   
            case '+':
                return one+two;
            case '-':
                return two-one;
            case '*':
                return one*two;
            case '/':
                return two/one;
        }
        return 0;
    }
}
目录
相关文章
|
3月前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
199 6
|
算法 Java
LeetCode(一)Java
LeetCode(一)Java
174 0
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
215 2
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
203 1
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
220 1
|
算法 测试技术
力扣经典150题第五十五题:逆波兰表达式求值
力扣经典150题第五十五题:逆波兰表达式求值
181 1
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
285 0
|
算法 Java
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
210 0
|
存储 算法 Java
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
180 0