zoukankan      html  css  js  c++  java
  • Python求解数组重新组合求最小值(优酷)

    题目描述:题目:含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如(321,3,32,) 最小数为321323

    题目分析:

    将数组中所有元素填充到个数相等,填充的数字为最后一位的数字,如这个case所示,填充之后为{321,333,322},然后按大小排序,

    排序之后将填充的数字去掉,然后拼接之后的数字就为最小数,即排序之后为{321,322,333},去掉填充数字为{321,32,3},即为321323

    Python实现

    def mergeMinValue(lst):
        #生成字符串列表
        lst = list(map(str,lst))
        #获得最长的数字长度
        m = len(max(lst,key=len))
        #根据原来的整数得到新的列表 
        newList = [(i,i+i[-1]*(m-len(i)))for i in lst]
        #对补齐的数字字符进行排序
        newList.sort(key=lambda item:item[1])
        #对原来的数字进行拼接
        result = ''.join((item[0] for item in newList))
        return int(result)

    测试样例:

    lst = [321,3,31,38,93]
    
    print(mergeMinValue(lst))

    测试输出

    3132133893

    资料参考:Python小屋

  • 相关阅读:
    map初始化
    map
    sort排序
    455分发饼干
    392判断子序列
    vector遍历
    vector删除数据
    VC-进程间通信(InterProcess Communication,IPC)
    Oracle 11g 安装和登录(windows)
    控制台输出宽字符wchar_t的中文显示问题
  • 原文地址:https://www.cnblogs.com/lateink/p/6486592.html
Copyright © 2011-2022 走看看