https://open.kattis.com/problems/lyklagangriti?editresubmit=16843522 这个问题基本上就是你输入密码的地方。每次输入中出现 L,光标就会“移动”到左边,右边也是一样,当出现 B 时,你就删除你所在的字符。
text = input()
chars = list(text)
cursor = 0
password = []
for char in chars:
if char == 'L':
cursor -= 1
elif char == 'R':
cursor += 1
elif char == 'B':
password.pop(cursor - 1)
cursor -= 1
else:
password.insert(cursor, char)
cursor += 1
print(*password, sep='')
我正在 Kattis 上解决这个问题,到目前为止,我已经通过了很多测试用例,但我似乎超出了测试组 4 和 5 的时间限制。有没有什么方法可以加快这个代码的速度?
我正在解决这个问题,我需要用光标移动来处理字符串:
'L'
向左移动光标'R'
向右移动在光标位置插入其他字符
优化代码:
这使用两个堆栈来有效地模拟游标
由于 Kattis 问题陈述,您可以删除健全性检查,因为您知道所做的任何索引都将始终有效。
因此,您所需要的只是: