3.3_number_join_数字拼接问题

--- 数字拼接 ---
    有 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):

    # x 小的话,return 1:需要交换
    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))
    return ''.join(li)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值