class Solution {
int num=0;
stack<int>q;
int a1=0;
int a2=0;
int flag=0;
public:
int evalRPN(vector<string>& tokens) {
for(int i=0;i<tokens.size();i++)
{
num=0;
int j=0;
if(tokens[i]!="+"&&tokens[i]!="-"&&tokens[i]!="*"&&tokens[i]!="/")
{
if(tokens[i][0]=='-') {flag=1; j=1;}
for(j;j<tokens[i].size();j++)
num=num*10+tokens[i][j]-'0';
if(flag==1) num=-num;
flag=0;
q.push(num);
}
else{
a1=q.top();q.pop();
a2=q.top();q.pop();
if(tokens[i]=="+") q.push(a2+a1);
if(tokens[i]=="-") q.push(a2-a1);
if(tokens[i]=="*") q.push(a2*a1);
if(tokens[i]=="/") q.push(a2/a1);
}
}
return q.top();
}
};