`
hcx2013
  • 浏览: 88710 次
社区版块
存档分类
最新评论

Evaluate Reverse Polish Notation

 
阅读更多

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

Valid operators are +-*/. Each operand may be an integer or another expression.

Some examples:

["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6


public class Solution {
    public int evalRPN(String[] tokens) {
        if (tokens == null || tokens.length == 0) {
        	return 0;
        }
        Stack<Integer> stack = new Stack<Integer>();
        for (String string : tokens) {
        	int res = 0;
        	if (string.equals("+") || string.equals("-") || string.equals("*") || string.equals("/")) {
        		int b = stack.pop();
        		int a = stack.pop();
        		if (string.equals("+")) {
        			res += (a + b);
        		} else if (string.equals("-")) {
        			res += (a - b);
        		} else if (string.equals("*")) {
        			res += (a * b);
        		} else {
        			res += (a / b);
        		}
        		stack.push(res);
        	} else {
        		stack.push(Integer.valueOf(string));
        	}
		}
        return stack.pop();
    }
}
 
分享到:
评论

相关推荐

    Coding Interview In Java

    3 Evaluate Reverse Polish Notation 21 4 Isomorphic Strings 25 5 Word Ladder 27 6 Word Ladder II 29 7 Median of Two Sorted Arrays 33 8 Kth Largest Element in an Array 35 9 Wildcard Matching 37 10 ...

    js-leetcode题解之150-evaluate-reverse-polish-notation.js

    javascript js_leetcode题解之150-evaluate-reverse-polish-notation.js

    python-leetcode题解之150-Evaluate-Reverse-Polish-Notation.py

    python python_leetcode题解之150_Evaluate_Reverse_Polish_Notation.py

    Leetcode的ac是什么意思-LeetCodeInJava:leetcode-java

    #150 Evaluate Reverse Polish Notation #169 Majority Element #171 Excel Sheet Column Number #217 Contains Duplicate #226 Invert Binary Tree #237 Delete Node in a Linked List #238 Product of Array ...

    10个最常见的Java算法.doc

    * 经典问题:Evaluate Reverse Polish Notation, Longest Palindromic Substring, 单词分割, 字梯, Median of Two Sorted Arrays, 正则表达式匹配, 合并间隔, 插入间隔, Two Sum, 3Sum, 4Sum, 3Sum Closest, String ...

    LeetCode题解 - Java语言实现-181页.pdf

    2. Evaluate Reverse Polish Notation 逆波兰表示法是一种数学表达式表示法,需要将中缀表达式转换为后缀表达式。可以使用栈来解析逆波兰表示法,实现表达式的计算。 3. Solution of Longest Palindromic ...

    LeetCode题解(java语言实现).pdf

    * Evaluate Reverse Polish Notation:该题目要求对逆波兰表示法的字符串进行求值,实现方法使用了栈的数据结构。 * Solution of Longest Palindromic Substring in Java:该题目要求找到最长的回文子串,实现方法...

    春节7天练丨Day2:栈、队列和递归1

    3. **Evaluate Reverse Polish Notation**:逆波兰表达式求值,使用栈处理运算符和操作数,依次计算得到最终结果。 ### 队列 队列是一种遵循“先进先出”(First In First Out, FIFO)原则的数据结构。常见的操作...

    CleanCodeHandbook_v1.0.3

    - Evaluate Reverse Polish Notation(逆波兰表达式求值) 10. Dynamic Programming(动态规划): 动态规划是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中使用的,用于求解决策过程最优化问题的...

    leetcode java

    - 逆波兰表达式求值(Evaluate Reverse Polish Notation)则是关于后缀表达式的计算。 **动态规划(Dynamic Programming)** 动态规划是解决具有重叠子问题和最优子结构特性的问题的方法。 - "爬楼梯"(Climbing ...

    常见算法题答案及解析

    40. Evaluate Reverse Polish Notation:计算后缀表达式的值。 41. Valid Parentheses:判断字符串是否为有效的括号字符串。 七、动态规划 42. Climbing Stairs:计算爬楼梯的方案数。 43. Unique Paths:不同路径...

    javalruleetcode-leetcode:这是Java写的leetcode

    [Java](./src/Evaluate Reverse Polish Notation/Solution.java) 2013/11/27 中等的 [Java](./src/直线上的最大点数/Solution.java) 2013/11/22 难的 [Java](./src/排序列表/Solution.java) 2013/11/16 中等的 [Java...

    Leetcode book刷题必备

    40. Evaluate Reverse Polish Notation:计算后缀表达式。 41. Valid Parentheses:验证括号的有效性。 【动态规划】 42. Climbing Stairs:计算爬楼梯的不同方法数。 43. Unique Paths:机器人在一个 m x n 的网格...

    LeetCode判断字符串是否循环-leetcode:用lin编码

    Notation(150) Vector 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, ...

    leetcode双人赛-Algorithm:leetcode算法刷题总结,长期更新,欢迎探讨与指正

    [leetcode]150.Evaluate Reverse Polish Notation 题目: ["2", "1", "+", "3", "*"] -&gt; ((2 + 1) * 3) -&gt; 9 ["4", "13", "5", "/", "+"] -&gt; (4 + (13 / 5)) -&gt; 6 思路:每次遇到符号,出栈两个元素进行运算,并将...

    leetcode中国-leetcode:刷算法了

    Evaluate Reverse Polish Notation 逆波兰的后半截实现 Linked List Cycle 快慢指针 Linked List Cycle II 快慢指针再加个初始指针 慢指针到链表开始位置时, 快指针总是比他快k步(每次移动快1步, 移动k次), 第一次...

    LeetCode最全代码

    190 | [Reverse Bits](https://leetcode.com/problems/reverse-bits/) | [C++](./C++/reverse-bits.cpp) [Python](./Python/reverse-bits.py) | _O(1)_ | _O(1)_ | Easy ||| 191 |[Number of 1 Bits]...

    波兰表达式c语言递归实现

    与之相对的是逆波兰表达式(Reverse Polish Notation,RPN),也就是通常所说的后缀表达式,其中的运算符位于操作数之后。 在C语言中,实现波兰表达式求值的递归函数是一个经典的例子,用于展示递归的概念。下面是...

Global site tag (gtag.js) - Google Analytics