LeetCode OJ--Evaluate Reverse Polish Notation
2024-09-30 04:53:38
http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/
栈使用
#include <iostream>
#include <string>
#include <vector>
#include<stack>
using namespace std; class Solution {
public:
int toNum(string str)
{
int sum = ;
int i = ;
int flagPositiveOrNegative = ;;
if(str[] == '-')
{
flagPositiveOrNegative = -;
i = ;
}
for( i;i<str.size();i++)
{
sum *= ;
sum += str[i] - '';
}
return sum * flagPositiveOrNegative;
}
int evalRPN(vector<string> &tokens) {
if(tokens.size()==)
return ;
int i = ;
stack<int> myStack;
while(i<tokens.size())
{
if(tokens[i] == "+" || tokens[i] == "-" || tokens[i]=="*" ||tokens[i] == "/" )
{
int num1 = myStack.top();
myStack.pop();
int num2 = myStack.top();
myStack.pop();
if(tokens[i] == "+")
myStack.push(num1+num2);
if(tokens[i] == "-")
myStack.push(num2-num1);
if(tokens[i] == "*")
myStack.push(num1*num2);
if(tokens[i] == "/")
myStack.push(num2/num1);
}
else
{
myStack.push(toNum(tokens[i]));
}
i++;
}
return myStack.top();
}
}; int main()
{
Solution myS;
vector<string> input;
input.push_back("");
input.push_back("-4");
input.push_back("+");
cout<<myS.evalRPN(input);
return ;
}
最新文章
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
- swif-自动引用计数
- Windows Live Writer体验
- netfx_NativeCompilation.msi 传说中的 .NET Native 预览版的文件列表
- ios截取号码
- PC-PC-单片机(Arduino)通信实例
- LightOJ1105 Fi Binary Number(数位DP)
- GitHub学习资料
- 小心buffer的拼接问题 --转
- Oracle 课程八之性能优化之10046事件
- Qt窗体引用window自带阴影边框效果
- hadoop 2.x安装:完全分布式安装
- ZooKeeper 03 - ZooKeeper集群的脑裂问题 (Split Brain问题)
- GitHub下载提速
- 洛谷P2860 [USACO06JAN]冗余路径Redundant Paths(tarjan求边双联通分量)
- python nose测试框架全面介绍十二 ----用例执行顺序打乱
- Day 1: ASP.NET and JavaScript Jan.16th Trying
- pt-table-checksum工具MySQL主从复制数据一致性
- tomcat shutdown.sh结束不了,Could not contact localhost:8005
- .net提供的5种request-response方法一