Leetcode: Evaluate Reverse Polish Notation

原创 2013年12月03日 21:07:39

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

int evalRPN(vector<string> &tokens) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
        if(tokens.size()==1)return stoi(*tokens.begin());
        stack<int> numbers;
		vector<string>::iterator it = tokens.begin();
		int op1 = 0;
		int op2 = 0;
		while(it != tokens.end())
		{
			if(*it == "+"||*it == "-" || *it == "*" || *it == "/")
			{
				op2 = numbers.top();
				numbers.pop();
				op1 = numbers.top();
				numbers.pop();
				if(*it == "+")
					numbers.push(op1+op2);
				else if(*it == "-")
					numbers.push(op1-op2);
				else if(*it == "*")
					numbers.push(op1*op2);
				else
					numbers.push(op1/op2);
			}
			else
				numbers.push(stoi(*it));
			it++;
		}
		return numbers.top();
    }




版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode】Evaluate Reverse Polish Notation 解题报告

【题意】 逆波兰表达式,又叫后缀表达式。 例如: ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"]...
  • ljiabin
  • ljiabin
  • 2014年08月28日 20:57
  • 1696

Java Evaluate Reverse Polish Notation(逆波兰表达式)

表达式:   ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9   ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)...
  • soszou
  • soszou
  • 2014年07月05日 16:06
  • 2717

【LeetCode-面试算法经典-Java实现】【150-Evaluate Reverse Polish Notation(计算逆波兰式)】

【151-Evaluate Reverse Polish Notation(计算逆波兰式)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Evaluate the val...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月20日 06:37
  • 2712

【LeetCode刷题Java版】Evaluate Reverse Polish Notation(计算逆波兰表达式)

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -...
  • bruce_6
  • bruce_6
  • 2014年10月13日 18:02
  • 2340

Evaluate Reverse Polish Notation -- LeetCode

原题链接: http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/  这道题是逆波兰式的求解,不了解逆波兰式的朋友可以参考一...
  • linhuanmars
  • linhuanmars
  • 2014年03月13日 21:56
  • 5403

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

题目:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ Evaluate the value of an arithm...
  • dragon_dream
  • dragon_dream
  • 2014年03月01日 15:34
  • 2471

LeetCode–Evaluate Reverse Polish Notation

LeetCode–Evaluate Reverse Polish Notation (LeetCode - 评价逆波兰表示法,即后缀表达式) By X Wang (LeetCode: 一个在线编...
  • zgljl2012
  • zgljl2012
  • 2014年05月05日 00:59
  • 1053

LeetCode题解:Evaluate Reverse Polish Notation

Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Poli...
  • MagiSu
  • MagiSu
  • 2013年11月28日 03:43
  • 3117

逆波兰表示法 Reverse Polish notation,RPN

逆波兰记法中,操作符置于操作数的后面。例如表达“三加四”时,写作“3 4 +”,而不是“3 + 4”。如果有多个操作符,操作符置于第二个操作数的后面,所以常规中缀记法的“3 - 4 + 5”在逆波兰记...
  • dpppBR
  • dpppBR
  • 2016年11月28日 21:50
  • 229

线性表_栈_逆波兰计算式(Reverse Polish Notation)

1.概念     逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)     实现逆波兰式的算法,难度并不大,但为什么要将看...
  • shyjhyp11
  • shyjhyp11
  • 2017年05月07日 22:41
  • 165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode: Evaluate Reverse Polish Notation
举报原因:
原因补充:

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