J'ai récemment eu un problème à résoudre au travail où j'avais deux listes: une liste principale et une liste plus petite qui contient un sous-ensemble des éléments de la liste principale potentiellement dans un ordre différent. Je devais réorganiser la liste principale de manière à ce que les éléments du sous-ensemble apparaissent dans le même ordre sans modifier l'ordre des éléments non trouvés dans la liste et en gardant les éléments au même endroit dans la mesure du possible. D'accord, cela semble probablement déroutant, alors je vais le détailler:
- La liste principale définit l'ordre par défaut des éléments.
- La liste des sous-ensembles définit l'ordre relatif de certains éléments.
- Lorsque la liste principale contient deux éléments en désordre selon la liste de sous-ensembles, l'élément qui se trouve plus tôt dans la liste principale doit être déplacé vers le premier index où il se trouve au bon emplacement par rapport aux autres éléments de la liste de sous-ensembles. (c'est-à-dire immédiatement après le dernier élément)
Votre tâche consiste à implémenter cet algorithme de réorganisation.
Exemples de cas de test
Master: [1, 2, 3]
Subset: []
Result: [1, 2, 3]
Master: [9001, 42, 69, 1337, 420]
Subset: [69]
Result: [9001, 42, 69, 1337, 420]
Master: [9001, 42, 69, 1337, 420, 99, 255]
Subset: [69, 9001, 1337]
Result: [42, 69, 9001, 1337, 420, 99, 255]
Master: [1, 2, 3, 4, 5]
Subset: [2, 5]
Result: [1, 2, 3, 4, 5]
Master: [apple, banana, carrot, duck, elephant]
Subset: [duck, apple]
Result: [banana, carrot, duck, apple, elephant]
Master: [Alice, Betty, Carol, Debbie, Elaine, Felicia, Georgia, Helen, Ilene, Julia]
Subset: [Betty, Felicia, Carol, Julia]
Result: [Alice, Betty, Debbie, Elaine, Felicia, Carol, Georgia, Helen, Ilene, Julia]
Master: [snake, lizard, frog, werewolf, vulture, dog, human]
Subset: [snake, werewolf, lizard, human, dog]
Result: [snake, frog, werewolf, lizard, vulture, human, dog]
Master: [Pete, Rob, Jeff, Stan, Chris, Doug, Reggie, Paul, Alex]
Subset: [Jeff, Stan, Pete, Paul]
Result: [Rob, Jeff, Stan, Pete, Chris, Doug, Reggie, Paul, Alex]
Master: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Subset: [8, 1, 2, 12, 11, 10]
Result: [3, 4, 5, 6, 7, 8, 1, 2, 9, 12, 11, 10]
Master: [lol, rofl, lmao, roflmao, lqtm, smh, jk, wat]
Subset: [wat, lmao, rofl]
Result: [lol, roflmao, lqtm, smh, jk, wat, lmao, rofl]
Règles
- Failles standard, yadda yadda, E / S pratiques, bla bla.
- Même si les exemples utilisent des nombres et des chaînes, vous ne devez prendre en charge qu'un seul type d'élément, qu'il s'agisse d'entiers, de chaînes ou de tout autre élément avec une sémantique d'égalité bien définie, y compris des listes hétérogènes si cela vous convient dans votre langue.
- Vous pouvez supposer que la liste principale et la liste de sous-ensembles ne contiennent aucun doublon
- Vous pouvez supposer que tous les éléments trouvés dans la liste des sous-ensembles se trouvent dans la liste principale
- L'une ou l'autre liste peut être vide
- Vous devez, au minimum, prendre en charge des tableaux jusqu'à 100 éléments.
- La réorganisation peut être implémentée sur place ou par la création d'une nouvelle liste / tableau.
Bon golf!
8 1 3 4 5 6 7 2 9 12 11 10
solution valable à l'avant-dernier?