[白俊]スタック10828号


https://www.acmicpc.net/problem/10828
import sys

input = sys.stdin.readline

n = int(input())

stack = []

for i in range(n):
    cmd = input().split()
    
    if cmd[0] == "push":
        stack.append(int(cmd[1]))
    
    elif cmd[0] == "pop":
        if len(stack) == 0:
            print(-1)
        else: 
            print(stack.pop())

    elif cmd[0] == "size":
        print(len(stack))
    
    elif cmd[0] == "empty":
        if len(stack) == 0:
            print(1)
        else:
            print(0)

    elif cmd[0] == "top":
        if len(stack) == 0:
            print(-1)
        else:
            print(stack[-1])

  • 最初はタイムアウトが発生し、
    input()をsysに設定します.stdin.これをreadline()で交換し、時間が経つにつれて解決しました.

  • 1つの入力のみを受信する場合はinput()でも構いませんが、複数行の重複文を受信する場合はsysを使用する必要があります.stdin.readline()を使用してもタイムアウトは発生しません.

  • ただし、入力が数字ではなく文字列である場合、入力は改行(n)になります.
    input().strip()または入力()を使用します.strip().split()を使用したほうがいいです.