Antiguo Wei gana la oferta que le llevará a conocer --- Título de la serie cepillo (dispuestos en una matriz 32. El número más pequeño)

32. El conjunto de número más pequeño alineado

problema:

Introduzca un array entero positivo, el conjunto de todos los números dispuestos en un número empalmados juntos, el empalme puede imprimir todos los números de uno más pequeño. 3,32,321 matriz de entrada} {por ejemplo, imprimir el número mínimo de tres números puede estar dispuesto para 321.323.

solución:

pensado:

Esta pregunta, tenemos que hacer, si a + b <b + AA anterior norma imperativa consecutivo, la clasificación de los elementos de la matriz, y se puede empalmar juntos.

código Python:

Aquí nota, porque el python3 versión elimina la función cmp, y los parámetros de la función cmp ordenadas, tenemos que utilizar functools en cmp_to_key para reemplazar el parámetro cmp originales.
Se ha pasado dos parámetros cmp_to_key x, y cuando x> y igual a 1 para volver retorno 0, de lo contrario -1

Se mecanismo está funcionando en la lista es la lista de elementos a la comparación por pares, el intercambio de dos elementos cuando el regreso es positivo cmp

# -*- coding:utf-8 -*-
import operator
import functools
class Solution:
    def PrintMinNumber(self, numbers):
        # write code here
        if not numbers:
            return ""
        lmb=lambda x,y:int(str(x)+str(y))-int(str(y)+str(x))
        num=sorted(numbers,key=functools.cmp_to_key(lmb))
        return ''.join([str(i) for i in num])
Publicados 160 artículos originales · elogios ganado 30 · Vistas a 70000 +

Supongo que te gusta

Origin blog.csdn.net/yixieling4397/article/details/104985126
Recomendado
Clasificación