gpt4 book ai didi

python-3.x - 缩短Python3中Stack的使用时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:29 26 4
gpt4 key购买 nike

我正在处理一个编码问题。

https://www.acmicpc.net/problem/1406

我已经为此写了一个解决方案,

front = []
back = []

word = input()
count = int(input())

for a in word:
front.append(a)

for i in range(count):
command = input().split()
if command[0] == "P":
front.append(command[1])
elif command[0] == "L":
if front:
back.append(front.pop())
elif command[0] == "D":
if back:
front.append(back.pop())
else:
if front:
front.pop()

while (back):
front.append(back.pop())

print(''.join(map(str, front)))

但是,我在提交时总是收到超时错误。我如何更改某些内容以在 Python 中更快地运行此代码?或者这是语言的固有问题?

最佳答案

假设您有一百万个字符和两百万个命令。

  1. 您需要先迭代一百万个字符并创建一个非常大的数组。
  2. 对于每个 L 和 D 操作,您都需要弹出和推送。在此示例中,您执行了将近 200 万次。
  3. 在边缘情况下,当我们只进行 L 操作时,您将不得不迭代整个 back 并将其附加到 front

我敢打赌所有 3 个案例都经过了测试。

您可能总是尝试使用双端队列来提高性能 https://docs.python.org/2/library/collections.html#collections.deque

但我建议根本不要使用列表。您只需对 word 进行操作并记住当前光标所在的索引即可。

关于python-3.x - 缩短Python3中Stack的使用时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50136215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com