paiza Skill vérifier la collection de problèmes passés "Historique de recherche équivalent au rang C"

(problème) https://paiza.jp/works/mondai/skillcheck_archive/search_history?language_uid=python3

(Vidéo résolue en Java) https://paiza.jp/works/skillcheck/primer/skillcheck4

Je n'ai pas obtenu de réponse à cette question, alors je publierai le code de réponse pour mon propre avis L'énoncé du problème est le suivant.

Vous ne pouvez pas voir l'historique des mots recherchés dans le navigateur que vous utilisez. Vous avez trouvé peu pratique de ne pas pouvoir voir l'historique des mots recherchés, j'ai donc décidé de créer une fonction pour voir moi-même l'historique des mots recherchés.

L'historique des mots recherchés est créé comme suit.

Si le mot de recherche W a déjà été saisi: Supprimez W dans l'historique. Ajoutez W au début de l'histoire. Si le mot de recherche W n'a jamais été saisi auparavant: Ajoutez W au début de l'histoire.

Puisque N mots de recherche W sont donnés, écrivez un programme qui affiche l'historique après que N mots de recherche sont donnés.

Si vous trouvez cela un peu difficile à comprendre à partir de l'énoncé du problème seul, vous pouvez le comprendre en regardant le lien, car il existe des exemples concrets.

Orientation de réponse

La première ligne de l'entrée standard reçoit un entier N qui représente le nombre de mots recherchés. Dans la deuxième ligne et les suivantes qui suivent, les mots recherchés reçoivent un mot par ligne. Créez au préalable une liste vide, regardez les mots ligne par ligne, stockez le mot dans la liste s'il ne figure pas dans la liste et supprimez le mot de la liste s'il est dans la liste. Si vous l'ajoutez à la liste ci-dessus, il semble correspondre aux conditions données.


#Obtenez l'entier N
n = int(input())
#Liste vide
words=[]

#Obtenez des mots ligne par ligne
for i in range(n):
    W = str(input())
#Vérifiez si le mot obtenu par l'instruction if est inclus dans la liste avant de stocker la liste.
    if W in words :
        words.remove(W) #Supprimer les mots de la liste s'ils sont dans la liste
    words.append(W) #Ajouter parce qu'il est ajouté, qu'il soit ou non dans la liste()La méthode est dans cette position

Lors de l'affichage du résultat, il existe une condition selon laquelle l'ordre est nouvellement ajouté à la liste ligne par ligne, de sorte que la réponse qui lui correspond est sortie.


#Voir les résultats
for i in range(int(len(words))):
    print(words[-i-1])

C'est tout ce qu'on peut en dire.

Recommended Posts

paiza Skill vérifier la collection de problèmes passés "Historique de recherche équivalent au rang C"
Résoudre le nombre de mots (équivalent au rang C de paiza) en Python
Résoudre Fizz Buzz (équivalent au rang C de paiza) en Python
Liste de vérification des compétences de Paiza des rangs D et C fréquemment utilisés ~ Python ~
[Avec commentaire] Résoudre Fizz Buzz (équivalent au rang C de paiza) avec Python