Self-explanatory C++ solution using stacks


#1
int Solution::evalRPN(vector<string> &A) {
stack<int> S;
int n=A.size();
int temp1,temp2,x;
for(int i=0;i<n;i++){
    if(A[i]=="+"||A[i]=="-"||A[i]=="/"||A[i]=="*"){
        temp1=S.top();
        S.pop();
        temp2=S.top();
        S.pop();
        if(A[i]=="+"){
            x=temp1+temp2;
        }else if(A[i]=="-"){
            x=temp2-temp1;
        }else if(A[i]=="/"){
            x=temp2/temp1;
        }else if(A[i]=="*"){
            x=temp2*temp1;
        }
        S.push(x);
    }else{
        S.push(stoi(A[i]));
    }
}
return S.top();

}