拼接最大数字问题

拼接最大数字问题

有n个非负整数,将其按照字符串拼接的方式拼接为一个整数。如何拼接可以使得得到的整数最大?
例: 32,94,128,1286,6,71可以拼接除的最大整数为94716321286128

from functools import cmp_to_key

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

def xy_cmp(x, y):
    print("comparing x: ", x, " and y:", y)
    if x+y < y+x:
        return 1
    elif x+y > y+x:
        return -1
    else:
        return 0

def number_join(li):
    li = list(map(str, li))
    li.sort(key=cmp_to_key(xy_cmp))
    print(li)
    return ''.join(li)

print(number_join(li))

 

posted @ 2023-06-17 22:08  天才九少  阅读(93)  评论(0)    收藏  举报