Quand je faisais problème AtCoder et que je voulais obtenir le "numéro dans l'ordre du dictionnaire", je devais trouver l'ordre. Par exemple, supposons que vous créez un mot en utilisant a, b, c, d, e. Cette fois,
J'ai appris à le faire, alors j'ai rédigé un mémorandum.
Très facile avec les permutations itertools Dans le code ci-dessous, créez un mot en utilisant a, b, c, d, e et vérifiez quel est le nombre "abcde", "deabc".
Code
import itertools
abcde_list = ["a", "b", "c", "d", "e"]
A = list(itertools.permutations(abcde_list))
# →[('a', 'b', 'c', 'd', 'e'), ('a', 'b', 'c', 'e', 'd'), ('a', 'b', 'd', 'c', 'e'), ('a', 'b', 'd', 'e', 'c'), ('a', 'b', 'e', 'c', 'd'), ('a', 'b', 'e', 'd', 'c'), ('a', 'c', 'b', 'd', 'e').....
#Notez que c'est un tuple
abcde_tuple = ("a", "b", "c", "d", "e")
deabc_tuple = ("d", "e", "a", "b", "c")
abcde_num = (A.index(abcde_tuple))
# →0
deabc_num = (A.index(deabc_tuple))
# →90
Notez que *** index commence à 0. *** ***
Recommended Posts