Letztes Mal Wenn Sie empfohlene Probleme haben, hinterlassen Sie bitte einen Kommentar oder Twitter. #29 Problem
** Gedanken ** Anfangs wurde es normal implementiert (umgekehrt), aber umgekehrt ist teuer und muss gut gehandhabt werden. Sie können deque verwenden, da Sie am Anfang oder am Ende Zeichen hinzufügen können. Anstatt eine nach der anderen umzukehren, können Sie auch die vorderen und hinteren Beschriftungen erstellen und bei jedem Umkehren umkehren.
from collections import deque
s = deque(input())
q = int(input())
query = [input().split() for _ in range(q)]
reverse = False #Vorher und nachher urteilen
for i in query:
if len(i) == 1:
if reverse:
reverse = False
else:
reverse = True
else:
if reverse:
if i[1] == '1':
s.append(i[2])
else:
s.appendleft(i[2]) #An der Spitze anhängen
else:
if i[1] == '1':
s.appendleft(i[2]) #An der Spitze anhängen
else:
s.append(i[2])
if reverse: #s muss umgekehrt werden, wenn umgekehrt aktiviert ist
s = reversed(s)
s = ''.join(s)
print(s)
else:
s = ''.join(s)
print(s)
Ich denke, die Wahrheit der Umkehrung kann besser gehandhabt werden.
Ich habe gelernt, dass das Manipulieren von Strings langsam ist. Es scheint, dass es besser ist, list oder deque zu verwenden, als str für das Problem, dass der Ort, an dem gearbeitet werden soll, wie diesmal entschieden wird. wir sehen uns. Gute Nacht.
Recommended Posts