华为OD机试真题:组成最大数

小组中每位都有一张卡片,卡片上是6位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字。


输入描述:
","号分割的多个正整数字符串,不需要考虑非数字异常情况,小组最多25个人.



输出描述:
最大的数字字符串
示例1:
输入:22,221
输出:22221

#解题想法:
利用冒泡排序,每次将最小位置的数放在最后




num = "22,221,33,93,96,933,98,973,974,9,9999"
nums = num.split(',')


for i in range(len(nums)):
    for j in range(0, len(nums)-1):
        if str(nums[j]) + str(nums[j+1]) < str(nums[j+1]) + str(nums[j]):

            nums[j], nums[j + 1] = nums[j + 1], nums[j]
            # temp = nums[j]
            # nums[j] = nums[j+1]
            # nums[j+1] = temp


res = ""
for i in range(len(nums)):
    res = res + str(nums[i])

print(str(int(res)))


  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值