博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode】150. Evaluate Reverse Polish Notation
阅读量:5316 次
发布时间:2019-06-14

本文共 1595 字,大约阅读时间需要 5 分钟。

Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in .

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

 

使用栈(Stack),如果是操作数则压栈,如果是操作符则弹出栈顶两个元素进行相应运算之后再压栈。

最后栈中剩余元素即计算结果。

注意:操作数的顺序。

class Solution {public:    int evalRPN(vector
& tokens) { stack
stk; for(int i = 0; i < tokens.size(); i ++) { if(tokens[i] == "+") { int a = stk.top(); stk.pop(); int b = stk.top(); stk.pop(); stk.push(b+a); } else if(tokens[i] == "-") { int a = stk.top(); stk.pop(); int b = stk.top(); stk.pop(); stk.push(b-a); } else if(tokens[i] == "*") { int a = stk.top(); stk.pop(); int b = stk.top(); stk.pop(); stk.push(b*a); } else if(tokens[i] == "/") { int a = stk.top(); stk.pop(); int b = stk.top(); stk.pop(); stk.push(b/a); } else { int digit = atoi(tokens[i].c_str()); stk.push(digit); } } return stk.top(); }};

转载于:https://www.cnblogs.com/ganganloveu/p/3964274.html

你可能感兴趣的文章
不喜欢写测试的朋友看过来,与你分享写测试的经验 做一个爱写测试的程序员...
查看>>
Anaconda+vscode+pytorch环境搭建
查看>>
java 几个实用的小工具
查看>>
Html常用标签元素
查看>>
介绍一下Objective-c常用的函数,常数变量
查看>>
windows编译libevent时报告“缺少print_winsock_errors.obj”的解决
查看>>
.cue 文件格式
查看>>
Map-Reduce入门
查看>>
Hadoop_NameNode_代码分析_目录树(2)
查看>>
floyd判环算法(龟兔赛跑算法)
查看>>
显示学生各科成绩和总成绩-面试被问到
查看>>
获取正在运行的服务
查看>>
Spring实战Day2
查看>>
第六次作业—例行报告
查看>>
转载:保护模式1
查看>>
易宝支付碰到 交易签名无效问题
查看>>
SQL复制表
查看>>
wab框架
查看>>
GitHub项目管理维护实用教程
查看>>
【POJ】3415 Common Substrings
查看>>