[アルゴリズム/標準]1935:接尾辞式2(python)



後列表記式が何なのかわからなかったので探してみましたが…スタックに順番に入れ、演算子が現れると2つの被演算子がポップアップされ、計算後にスタックに再入れて解きます.
N = int(input())
a = input()
num_list = [int(input()) for _ in range(N)]
stack = []
for i in a:
    if 'A' <= i <= 'Z':
        stack.append(num_list[ord(i) - ord('A')])

    else:
        n2 = stack.pop()
        n1 = stack.pop()
        if i == '+':
            stack.append(n1 + n2)
        elif i == '-':
            stack.append(n1 - n2)
        elif i == '*':
            stack.append(n1 * n2)
        elif i == '/':
            stack.append(n1 / n2)
print('%.2f' % stack[0])