提出詳細


ソースコード

for i in range(int(input())):
    print("Case #{}:".format(i + 1))
    
    S = input()
    
    stack = []
    
    now = 0
    
    while now < len(S):
        if S[now] in [str(t) for t in range(1, 10)]:
            stack.append(int(S[now]))
            now += 1
        elif S[now] == "&":
            n2 = stack.pop(-1)
            n1 = stack.pop(-1)      
            stack.append(n1 & n2)
            now += 1
        elif S[now] == "|":
            n2 = stack.pop(-1)
            n1 = stack.pop(-1)      
            stack.append(n1 | n2)
            now += 1
        elif S[now] == "^":
            n2 = stack.pop(-1)
            n1 = stack.pop(-1)      
            stack.append(n1 ^ n2)
            now += 1
        elif S[now] == ">":
            n2 = stack.pop(-1)
            n1 = stack.pop(-1)      
            stack.append(n1 >> n2)
            now += 2
        elif S[now] == "<":
            n2 = stack.pop(-1)
            n1 = stack.pop(-1)            
            stack.append(n1 << n2)
            now += 2
    print(stack.pop(-1))

提出情報

提出時間 2020-11-08 18:45:38
問題 E - 逆ポーランドビット演算
ユーザ名 konchan
状態 正解
正解率 22/22
提出出力結果

テストケース情報

# 状態 詳細情報
テストケース 1 正解 詳細を見る
テストケース 2 正解 詳細を見る
テストケース 3 正解 詳細を見る
テストケース 4 正解 詳細を見る
テストケース 5 正解 詳細を見る
テストケース 6 正解 詳細を見る
テストケース 7 正解 詳細を見る
テストケース 8 正解 詳細を見る
テストケース 9 正解 詳細を見る
テストケース 10 正解 詳細を見る
テストケース 11 正解 詳細を見る
テストケース 12 正解 詳細を見る
テストケース 13 正解 詳細を見る
テストケース 14 正解 詳細を見る
テストケース 15 正解 詳細を見る
テストケース 16 正解 詳細を見る
テストケース 17 正解 詳細を見る
テストケース 18 正解 詳細を見る
テストケース 19 正解 詳細を見る
テストケース 20 正解 詳細を見る
テストケース 21 正解 詳細を見る
テストケース 22 正解 詳細を見る