您的位置:首页 > 编程语言 > Lua

[LeetCode] Evaluate Reverse Polish Notation

2014-07-07 11:42 363 查看
题目链接

int evalRPN(vector<string> &tokens) {
vector<int> vals;
for(int i = 0; i < tokens.size(); i++)
{
if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/")
{
int right_val = vals.back();
vals.pop_back();
int left_val = vals.back();
vals.pop_back();
int new_val;
char operate = tokens[i][0];
switch(operate)
{
case '+':
new_val = left_val + right_val;
vals.push_back(new_val);
break;
case '-':
new_val = left_val - right_val;
vals.push_back(new_val);
break;
case '*':
new_val = left_val * right_val;
vals.push_back(new_val);
break;
case '/':
new_val = left_val / right_val;
vals.push_back(new_val);
break;
}
}
else
{
stringstream stream;
stream<<tokens[i];
int val;
stream>>val;
vals.push_back(val);
}
}
return vals.back();
}

string数字串转换成int的方法:

#include <sstream>
using namespace std;

stringstream stream;
string str = "-123";
stream<<str;
int val;
stream>>val;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: