Dernière fois Si vous avez des problèmes recommandés, veuillez laisser un commentaire ou Twitter. #29 Problème
** Pensées ** Au début, il a été mis en œuvre normalement (inversé), mais l'inverse est coûteux et doit être bien géré. Vous pouvez utiliser deque car vous pouvez ajouter des caractères au début ou à la fin. En outre, au lieu d'inverser une par une, vous pouvez créer les étiquettes avant et arrière et inverser chaque fois que vous inversez.
from collections import deque
s = deque(input())
q = int(input())
query = [input().split() for _ in range(q)]
reverse = False #Jugez avant et après
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]) #Ajouter à la pointe
else:
if i[1] == '1':
s.appendleft(i[2]) #Ajouter à la pointe
else:
s.append(i[2])
if reverse: #s doit être inversé si l'inversion est activée
s = reversed(s)
s = ''.join(s)
print(s)
else:
s = ''.join(s)
print(s)
Je pense que la vérité de l'inverse peut être mieux gérée.
J'ai appris que la manipulation des cordes est lente. Il semble qu'il vaut mieux utiliser list ou deque plutôt que str pour le problème que le lieu d'opération est décidé comme cette fois. à plus. bonne nuit.
Recommended Posts