题解 | #逆波兰表达式求值#
逆波兰表达式求值
https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串vector
* @return int整型
*/
int evalRPN(vector<string>& tokens) {
int n=tokens.size();
stack<int> stk;
int add=0,a,b,k;
for(int i=0;i<n;i++)
{
if(tokens[i]=="+"|| tokens[i]=="-"|| tokens[i]=="*"|| tokens[i]=="/")
{
b=stk.top();
stk.pop();
a=stk.top();
stk.pop();
if(tokens[i]=="+")
{
add=a+b;
stk.push(add);
}
if(tokens[i]=="-")
{
add=a-b;
stk.push(add);
}
if(tokens[i]=="*")
{
add=a*b;
stk.push(add);
}
if(tokens[i]=="/")
{
add=a/b;
stk.push(add);
}
}
else
{
k = atoi(tokens[i].c_str());
stk.push(k);
}
}
return stk.top();
}
};
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串vector
* @return int整型
*/
int evalRPN(vector<string>& tokens) {
int n=tokens.size();
stack<int> stk;
int add=0,a,b,k;
for(int i=0;i<n;i++)
{
if(tokens[i]=="+"|| tokens[i]=="-"|| tokens[i]=="*"|| tokens[i]=="/")
{
b=stk.top();
stk.pop();
a=stk.top();
stk.pop();
if(tokens[i]=="+")
{
add=a+b;
stk.push(add);
}
if(tokens[i]=="-")
{
add=a-b;
stk.push(add);
}
if(tokens[i]=="*")
{
add=a*b;
stk.push(add);
}
if(tokens[i]=="/")
{
add=a/b;
stk.push(add);
}
}
else
{
k = atoi(tokens[i].c_str());
stk.push(k);
}
}
return stk.top();
}
};