题解 | 【模板】队列操作

【模板】队列操作

https://www.nowcoder.com/practice/1137c8f6ffac4d5d94cc1b0cb08723f9

import sys

input = sys.stdin.read
data = input().split()

n = int(data[0])
queue = []
index = 1
output_lines = []

for _ in range(n):
    op = data[index]; index += 1

    if op == '1':
        x = int(data[index]); index += 1
        queue.append(x)
    
    elif op == '2':
        if queue:
            queue.pop(0)    # 使用 list.pop(0) 删除第一个元素是 O(n) 操作,效率低!
            # 可以使用双端队列
        else:
            output_lines.append('ERR_CANNOT_POP')
    
    elif op == '3':
        if queue:
            output_lines.append(queue[0])
        else:
            output_lines.append('ERR_CANNOT_QUERY')
    
    elif op == '4':
        output_lines.append(len(queue))

print('\n'.join(map(str,output_lines)))     # 使用join前确保每个元素都是 str


全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务