文档章节

LeetCode_150evalRPN [Evaluate Reverse Polish No..]

貉子
 貉子
发布于 2014/08/13 16:41
字数 138
阅读 22
收藏 0
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <stack>
using namespace std;

class Solution {
public:
	// 参考:http://zh.wikipedia.org/wiki/逆波兰表示法 即可
	int evalRPN(vector<string> &tokens) {
		stack<int> stk;
		for (int i = 0; i < tokens.size(); ++i) {
			string word = tokens[i];
			char ch = word[0];
			if (word.size() > 1 || isdigit(ch))
				stk.push(str2int(word));
			else {
				int val2 = stk.top(); stk.pop();
				int val1 = stk.top(); stk.pop();
				if (ch == '+') stk.push(val1 + val2);
				else if (ch == '-') stk.push(val1 - val2);
				else if (ch == '*') stk.push(val1 * val2);
				else if (ch == '/') stk.push(val1 / val2);
			}
		}
		return stk.top();
	}

	int str2int(string& s) {
		int res = 0, flag = 1, i = 0;
		if (!isdigit(s[0])) {
			flag = s[0] == '+' ? 1 : -1;
			++i;
		}
		for (; i < s.size(); ++i)
			res = res * 10 + (s[i] - '0');
		return res*flag;
	}
};



© 著作权归作者所有

貉子
粉丝 9
博文 94
码字总数 33240
作品 0
海淀
程序员
私信 提问
150. Evaluate Reverse Polish Notation - LeetCode

Question 150. Evaluate Reverse Polish Notation Solution 是的后缀(postfix)或逆波兰(reverse Polish)记法,计算这个表达式容易想到栈,当见到一个数时就入栈,见到操作符时该运算符作用于...

yysue
2018/06/08
43
0
LeetCode 分类刷题—— Stack

括号匹配问题及类似问题。第 20 题,第 921 题,第 1021 题。 栈的基本 pop 和 push 操作。第 71 题,第 150 题,第 155 题,第 224 题,第 225 题,第 232 题,第 946 题,第 1047 题。 利用...

一缕殇流化隐半边冰霜
07/04
0
0
计算逆波兰表达式表示的值 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......

叶枫啦啦
2017/11/07
3
0
Reverse Nodes in k-Group

[LeetCode] 025. Reverse Nodes in k-Group (Hard) (C++/Java),有需要的朋友可以参考下。 索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/l......

panpan123_
2017/01/16
0
0
第貳章學題 Lisp 3rd Edition, Winston & Horn

2-1: Each of the following things may be an atom, a list, or neither. Identify each accordingly. ATOM (THIS IS AN ATOM) (THIS IS AN EXPRESSION) ((A B) (C D) 3 (3) (LIST 3) (/ (+......

莊博堯
2012/01/18
137
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部