@pvaldes thanks for sharing. A C++ version:

int evalRPN(vector<string>& tokens) { stack<int> st; int op1, op2, res; for(string token : tokens){ if(token == "+"){ op2 = st.top(), st.pop(); op1 = st.top(), st.pop(); res = op1 + op2, st.push(res); }else if(token == "-"){ op2 = st.top(), st.pop(); op1 = st.top(), st.pop(); res = op1 - op2, st.push(res); }else if(token == "*"){ op2 = st.top(), st.pop(); op1 = st.top(), st.pop(); res = op1 * op2, st.push(res); }else if(token == "/"){ op2 = st.top(), st.pop(); op1 = st.top(), st.pop(); res = op1 / op2, st.push(res); }else{ st.push(stoi(token)); } } return st.top(); }Evaluate Reverse Polish Notation