首页 > 代码库 > leetcode Evaluate Reverse Polish Notation
leetcode Evaluate Reverse Polish Notation
#include <iostream>
#include <cstdlib>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
int evalRPN(vector<string> &tokens) {
stack<int> value;
int i = 0;
for(i = 0; i < tokens.size(); i++){
if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/"){
string t = tokens[i];
int a = value.top();
value.pop();
int b = value.top();
value.pop();
if(t == "+"){
value.push(b + a);
}
if(t == "-"){
value.push(b - a);
}
if(t == "*"){
value.push(b * a);
}
if(t == "/"){
value.push(b / a);
}
}else{
value.push(atoi(tokens[i].c_str()));
}
}
return value.top();
}
int main(int argc, char** argv) {
vector<string> s;
s.push_back("4");
s.push_back("13");
s.push_back("5");
s.push_back("/");
s.push_back("+");
cout<<evalRPN(s);
return 0;
}
#include <cstdlib>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
int evalRPN(vector<string> &tokens) {
stack<int> value;
int i = 0;
for(i = 0; i < tokens.size(); i++){
if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/"){
string t = tokens[i];
int a = value.top();
value.pop();
int b = value.top();
value.pop();
if(t == "+"){
value.push(b + a);
}
if(t == "-"){
value.push(b - a);
}
if(t == "*"){
value.push(b * a);
}
if(t == "/"){
value.push(b / a);
}
}else{
value.push(atoi(tokens[i].c_str()));
}
}
return value.top();
}
int main(int argc, char** argv) {
vector<string> s;
s.push_back("4");
s.push_back("13");
s.push_back("5");
s.push_back("/");
s.push_back("+");
cout<<evalRPN(s);
return 0;
}
leetcode Evaluate Reverse Polish Notation
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。