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

Posted mqxnongmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以整数元素构成的list中的数字组成最小整数相关的知识,希望对你有一定的参考价值。

问题

把一个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

以上是关于以整数元素构成的list中的数字组成最小整数的主要内容,如果未能解决你的问题,请参考以下文章

2022华为机试真题 C++ 实现整数对最小和

华为OD机试真题 Python 实现整数对最小和

华为OD机试真题Java实现整数对最小和真题+解题思路+代码(2022&2023)

华为OD机试真题Python实现整数对最小和真题+解题思路+代码(2022&2023)

删除一个数的K位使原数变得最小

用python编写脚本程序,实现用户输入3个整数,放入列表,并输出最小值