Old Wei ganha a oferta para levá-lo para aprender --- série título Brush (dispostos em uma matriz 32. O menor número)

32. A matriz de menor número alinhados

problema:

Digite um array de inteiros positivos, a matriz de todos os números dispostos em um número emendados, a emenda pode imprimir todos os números menor. 3,32,321 matriz de entrada} {por exemplo, imprima o número mínimo de três números pode ser disposto de modo a 321.323.

solução:

pensou:

Esta questão, nós precisamos fazer, se a + b <b + aa anterior ordenação regra linha, classificando os elementos do array, e podem ser emendados.

código python:

Aqui nota, porque a versão python3 removido a função cmp, e os parâmetros de função CMP classificadas, precisamos usar functools em cmp_to_key para substituir o parâmetro cmp originais.
Ele tem dois parâmetros passados cmp_to_key x, y quando x> y igual a 1 para voltar retorno 0, caso contrário -1

É mecanismo de trabalho na lista é a lista de elementos para comparação pareada, troca dois elementos quando o retorno CMP é positivo

# -*- 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])
Publicado 160 artigos originais · ganhou elogios 30 · vê 70000 +

Acho que você gosta

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