Best solution code


#1

int Solution::evalRPN(vector &A) {
stack st;
int n=A.size();
for(int i=n-1;i>=0;i–)
{
if(st.empty())
{
st.push(A[i]);
continue;
}
if(A[i]==""||A[i]=="-"||A[i]=="+"||A[i]=="/")
{
st.push(A[i]);
continue;
}
if(st.top()=="
"||st.top()=="+"||st.top()=="-"||st.top()=="/")
{
st.push(A[i]);
continue;
}
st.push(A[i]);
calc:
int v1=stoi(st.top());
st.pop();
int v2=stoi(st.top());
int res;
st.pop();
string ch=st.top();
st.pop();
if(ch=="")
{
res=v1
v2;
}
else if(ch=="-")
res=v1-v2;
else if(ch=="/")
res=v1/v2;
else if(ch=="+")
res=v1+v2;
if(!st.empty()&&(st.top()!="+"&&st.top()!="-"&&st.top()!="*"&&st.top()!="/"))
{
st.push(to_string(res));
goto calc;
}
else
st.push(to_string(res));
}
int res=stoi(st.top());
return res;
}