给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。

请你计算该表达式。返回一个表示表达式值的整数。

注意:

  • 有效的算符为 '+''-''*' 和 '/' 。
  • 每个操作数(运算对象)都可以是一个整数或者另一个表达式。
  • 两个整数之间的除法总是 向零截断 。
  • 表达式中不含除零运算。
  • 输入是一个根据逆波兰表示法表示的算术表达式。
  • 答案及所有中间计算结果可以用 32 位 整数表示。
function evalRPN(tokens: string[]): number {
    const stack =[]
    const set = new Set(['+','-','*','/'])
    for (const token of tokens) {
    if (!set.has(token)) {
        // 如果不是运算符,就是数字
        stack.push(parseInt(token));
    } else {
        const b = stack.pop()!;
        const a = stack.pop()!;
        if (token === '+') stack.push(a + b);
        else if (token === '-') stack.push(a - b);
        else if (token === '*') stack.push(a * b);
        else if (token === '/') stack.push(Math.trunc(a / b));
    }
}
    return stack[0]
};