55561bc4创建于 2022年12月27日历史提交
# @param {String[]} tokens
# @return {Integer}
def eval_rpn(tokens)
    operations = %w(+ - * /)
    nums = []
    
    tokens.each do |token|
        if operations.include?(token)
            a = nums.pop
            b = nums.pop
            
            result =  do_operation(token, b , a)
            nums << result
        else
            nums.push(token.to_i)
        end
    end
    
    nums.pop
end

def do_operation(operation, a, b)
    case operation
    when "+"
      return a + b
    when "*"
      return a * b
    when "-"
      return a - b
    when "/"
     return (a.to_f / b).to_i
    else
      raise "invalid operation #{operation}"
    end
end