標準/インデックス/10866


Question
質問リンク
Silver 4
整数を格納するDequeを実行し、入力としてのコマンドを処理するプログラムを作成します.
命令は全部で8条ある.
  • push frontX:整数Xをインデックスの前に配置します.
  • push backX:整数Xをインデックスの後ろに配置します.
  • pop front:インデックスの一番前の数字を削除し、その数字を出力します.インデックスに整数がない場合は、-1が出力されます.
  • pop back:dexの最後の数字を出力します.インデックスに整数がない場合は、-1が出力されます.
  • size:インデックス内の整数の個数を出力します.
  • 空:インデックスが空の場合、1または0が出力されます.
  • front:インデックスの一番前の整数を出力します.インデックスに整数がない場合は、-1が出力されます.
  • back:インデックスの一番後ろの整数を出力します.インデックスに整数がない場合は、-1が出力されます.
  • Input
    1行目に与えられるコマンド数N(1≦N≦10000).2行目からN行目までそれぞれ1つのコマンドがあります.与えられた整数は1以上であり、100000以下である.問題にない命令はない.
    15
    push_back 1
    push_front 2
    front
    back
    size
    empty
    pop_front
    pop_back
    pop_front
    size
    empty
    pop_back
    push_front 3
    empty
    front
    Output
    出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
    2
    1
    2
    0
    2
    1
    -1
    0
    1
    -1
    0
    3
    Logic
    デフォルト構造:deque
    1.命令語を順番に読む.
    2.命令の種類によって区分する.
    Code
    import sys
    deque=[]
    for i in range(int(sys.stdin.readline())):
        comm=sys.stdin.readline().split()
        if comm[0]=='push_back': deque.append(comm[1])
        elif comm[0]=='push_front': deque.insert(0,comm[1])
        elif comm[0]=='pop_back': print('-1') if not deque else print(deque.pop())
        elif comm[0]=='pop_front': 
            if not deque : print('-1') 
            else :
                print(deque[0])
                deque=deque[1:]
        elif comm[0]=='size': print(len(deque))
        elif comm[0]=='empty': print('0') if deque else print('1')
        elif comm[0]=='back': print('-1') if not deque else print(deque[-1])
        else : print('-1') if not deque else print(deque[0])