Middle-题目102:150. Evaluate Reverse Polish Notation

原创 2016年05月31日 19:54:37

题目原文:
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are +, -, *, /. Each operand may be an integer or another expression.
题目大意:
计算逆波兰式的值。
题目分析:
在《数据结构》课的堆栈部分,我们学习过如果求逆波兰式的值,在此复习一下:
初始化一个堆栈,然后遍历逆波兰式数组,如果是操作数则入栈,如果是操作符则把两个操作数弹出来进行运算,运算结果压入堆栈,最终栈中只有一个元素,即表达式的值。
源码:(language:java)

public class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack<Integer>();
        for(String token : tokens) {
            if(token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/")) {
                int num1 = stack.pop();
                int num2 = stack.pop();
                stack.push(operate(num2,token,num1));
            }
            else
                stack.push(Integer.parseInt(token));
        }
        return stack.peek();
    }
    private int operate(int a, String op, int b) {
        if(op.equals("+"))
            return a+b;
        else if(op.equals("-"))
            return a-b;
        else if(op.equals("*"))
            return a*b;
        else {
            return a/b;
        }
    }

}

成绩:
17ms,beats 39.27%,众数16ms,17.94%
cmershen的碎碎念:
逆波兰式是一种没有括号的,但运算结果唯一的表达式,对计算机来说要比中缀表达式容易理解很多。关于中缀表达式转逆波兰式的算法见百度百科,之前我们的课程设计也做过这个。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

LeetCode 150. Evaluate Reverse Polish Notation

LeetCode 150. Evaluate Reverse Polish Notation 栈

150.Evaluate Reverse Polish Notation(Stack-Medium)

转载请注明作者和出处:http://blog.csdn.net/c406495762

leetcode 150. Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -...

150. Evaluate Reverse Polish Notation

Problem Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid ope...

LeetCode 150 — Evaluate Reverse Polish Notation(C++ Java Python)

题目:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ Evaluate the value of an arithm...

LeetCode 150. Evaluate Reverse Polish Notation 辅助数据结构栈

题目 题意 注意 思路 代码 结果题目 Evaluate the value of an arithmetic expression in Reverse Polish Notation. ...

[leetcode] 150.Evaluate Reverse Polish Notation

题目: Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +...

Leetcode 150:Evaluate Reverse Polish Notation(计算逆波兰表达式) --java实现

1.概念 中缀表达式:1+2*3-4;4+5*1-6;平常我们所使用到的这种表达式,操作符在操作数的中间,这种表达式称为中缀表达式 后缀表达式:后缀表达式又叫逆波兰表达式,是为了纪念波兰的一位数学...

LeetCode:150. Evaluate Reverse Polish Notation(逆波兰表达式)

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -...

Leetcode 150 Evaluate Reverse Polish Notation (求值逆波兰表达式)

一,问题描述 1,用逆波兰表达式法去计算算术表达式的值。其中,有效运算符为+,-,*,/。每个操作数可以是整数或者另一个表达式2,例如: 3,解题思路: 先定义一个栈用来存放数据的,然后对字...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目102:150. Evaluate Reverse Polish Notation
举报原因:
原因补充:

(最多只允许输入30个字)