拼接最大数字问题

有n个非负整数,将其按照字符串拼接的方式拼接为一个整数收。 如何拼接可以使得得到的整数最大?

例:32,94,128,1286,6,71可以拼接除的最大整数为 94716321286128

from functools import cmp_to_key

li = [32, 94, 128, 1286, 6, 71]


def cmp(x, y):
    if x + y < y + x:
        return 1
    elif x + y > y + x:
        return -1
    return 0


def number_join(li):
    li = list(map(str, li))
    li.sort(key=cmp_to_key(cmp))
    return "".join(li)


if __name__ == "__main__":
    print(number_join(li))

results matching ""

    No results matching ""