以整数元素构成的list中的数字组成最小整数

41 篇文章 4 订阅
36 篇文章 1 订阅

问题

把一个int型数组中的数字拼成一个串,这个串代表的数字最小。


思路说明


不同角度,对原题理解有所不同。我按照下面的理解方式求解。

对这个问题的理解:

  1. 有一个元素是int类型的list;

  2. 将上述list中的每个元素的数字分别取出来,然后将这些数字的顺序进行从新排列,并将其中的最小整数输入,就是题目中要求的最小数字。

如果按照上述理解,在解题中,最应当小心的是数字如果很大,比如list中的某个int元素是:222222222222227777777777776666666666699999999999888888888...很大的整数,就不得不转化为字符串操作了。

所以,在本问题中,基本思路是:

  1. 将list中的int元素转换为str;
  2. 将所有数字(str类型)装入到一个list2
  3. 对list2进行排序
  4. 将list2中的数字(str类型)组装成一个数值(str类型)

解决(Python)

#! /user/bin/env python
#coding:utf-8


def joint_int(lst):
    str_list = [str(i) for i in lst]
    str_lonely = [str_list[i][j] for i in range(len(str_list)) for j in range(len(str_list[i]))]

    sorted_str = sorted(str_lonely)
    return "".join(sorted_str)

print joint_int([1230975,4087644567856])

更多以python求解的问题请访问:https://github.com/qiwsir/algorithm

qiwsir#gmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiwsir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值