Dado un número entero N , la tarea es imprimir todas las permutaciones distintas del número N .
Ejemplos:
Entrada: N = 133
Salida: 133 313 331
Explicación:
Hay un total de 6 permutaciones, que son [133, 313, 331, 133, 313, 331].
De todas estas permutaciones, las permutaciones distintas son [133, 313, 331].Entrada: N = 7668
Salida: 7668 7686 7866 6768 6786 6678 6687 6876 6867 8766 8676 8667
Enfoque: siga los pasos a continuación para resolver el problema:
- Inicialice una string vacía para almacenar la representación de string equivalente de N .
- Inicialice un mapa para convertir cada carácter de la string en un número entero y guárdelo como una lista.
- Permute esta lista usando itertools de funciones de python integradas. permutaciones() .
- Inicialice otra lista, diga newList.
- Recorra las permutaciones de la lista y si la permutación (lista) no está en newList , agregue esta lista a newList .
- Inicialice una string vacía, s = «» y otra lista vacía diga permuteList.
- Recorra la lista newlist y para cada lista, realice las siguientes operaciones:
- Recorra la lista y agregue cada elemento a la string s .
- Después de atravesar, convierta la string en un número entero .
- Agregue este entero a permuteList .
- Imprime los valores de permuteList como posibles permutaciones distintas.
A continuación se muestra la implementación del enfoque anterior:
Python3
# Python3 program for the above approach from itertools import permutations # Utility function to print # all distinct permutations def uniquePermutationsUtil(permute): p = [] # Traverse the list permute[] for i in permute: # Convert this permutation to list permutelist = list(i) # Append this list to p p.append(permutelist) # Stores unique permutations newlist = [] # Traverse list p[] for i in p: # If permutation is # not in newlist if i not in newlist: newlist.append(i) # Initialize empty list permutelist = [] # Traverse the list newlist[] for i in newlist: # Initialize empty string s = "" # Traversing in element list for j in i: # Convert each # element to string s = s + str(j) # Convert string to integer s = int(s) # Append the unique # permutation to permutelist permutelist.append(s) # Print all distinct permutations print(*permutelist) # Function to print all # distinct permutations def uniquePermutations(N): # Stores equivalent string # representation of N num = str(N) # Convert each character to # integer and store in the list lis = list(map(int, num)) # Built in method to store all # permutations of the list permute = permutations(lis) # Print unique permutations uniquePermutationsUtil(permute) # Driver Code # Given value of N N = 7668 # Function call to find all # distinct permutations of N uniquePermutations(N)
Producción:
7668 7686 7866 6768 6786 6678 6687 6876 6867 8766 8676 8667
Complejidad de Tiempo: O(N * N!)
Espacio Auxiliar: O(N * N!)
Publicación traducida automáticamente
Artículo escrito por vikkycirus y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA