From be49e3646ce8b8936696feb16a177b44f7257064 Mon Sep 17 00:00:00 2001 From: Azureki Date: Sun, 28 Oct 2018 21:47:12 +0800 Subject: [PATCH] use lambda expression --- lc150. Evaluate Reverse Polish Notation.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lc150. Evaluate Reverse Polish Notation.py b/lc150. Evaluate Reverse Polish Notation.py index e8e9136..41af950 100644 --- a/lc150. Evaluate Reverse Polish Notation.py +++ b/lc150. Evaluate Reverse Polish Notation.py @@ -6,20 +6,20 @@ def evalRPN(self, tokens): """ operators = {'+', '-', '*', '/'} oprd = [] + # use lambda expression + ops = { + '*': lambda x, y: x * y, + '+': lambda x, y: x + y, + '-': lambda x, y: x - y, + # int() trunc to 0 + '/': lambda x, y: int(x / y), + } for tk in tokens: if tk in operators: b = oprd.pop() - a = oprd.pop() - if tk == '+': - c = a + b - elif tk == '-': - c = a - b - elif tk == '*': - c = a * b - else: - c = int(a / b) - oprd.append(c) + # no need to pop another operand + oprd[-1] = ops[tk](oprd[-1], b) else: oprd.append(int(tk)) return oprd[0]