问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python实现,输入一个正整数数组,把数组里所有数字拼接起来排成一个...

发布网友 发布时间:2022-05-02 09:49

我来回答

4个回答

热心网友 时间:2022-04-18 07:19

你的例子第一列全是 3,我给个例子吧:[321, 32, 3, 4],输出该是 321,32,3,4。

第一个数越大,则应该排在后面,毕竟 4XXX 是比 3XXX 大的。

setp 1: [0][1][2]
         3  2  1
         3  2
         3
         4
排序第 0 列,越大的排越后。
ret = [?, ?, ?, 4]

setp 2: [0][1][2]
         3  2  1
         3  2
         3 <3>     <- 补位 3,因为 3 是同 3 组第一个元素。
排序第 1 列,越大的排越后。
ret = [?, ?, 3, 4]

setp 3: [0][1][2]
         3  2  1
         3  2 <3>  <- 补位 3,因为 3 是同 3 组第一个元素。
排序第 2 列,越大的排越后。323 比 321 大,所以……
ret = [?, 32, 3, 4]

只剩一个,那个排第一:
ret = [321, 32, 3, 4]

以上就是基本思路了。综上可得:

1. 先按 [0] 列分组:

2. 组中每个数都补位到同样长度,然后再排序。

完整代码:

def joinmin(ls):
    groups = {}
    for item in ls:
        prefix = item
        n = 0
        while prefix > 10:
            prefix //= 10
            n += 1
        groups.setdefault(prefix, []).append([item, n])
    sorted_keys = list(sorted(groups))
    ret = 0
    for prefix in sorted_keys:
        items = groups[prefix]
        max_n = max([t[1] for t in items])
        presort_items = []
        for item, item_n in items:
            padding = item
            n = item_n
            while max_n > n:
                padding *= 10
                padding += prefix
                n += 1
            presort_items.append((padding, item, item_n))
        for _, item, n in sorted(presort_items):
            while n > -1:
                ret *= 10
                n -= 1
            ret += item
    return ret

不是看在你的分上答的,不过这种小题目蛮有趣的。

热心网友 时间:2022-04-18 08:37

import itertools

data = {3, 32, 321, 3432, 435, 64, 324}     # 最小组合数结果 321323243343243564
# data = {3, 32, 321}     # 最小组合数结果    321323

# 1、首先 data 是一个 set 集合,需要将其转换为 列表进行排序    sorted(list(data)))
# 2、然后通过python的内置库 itertools.permutations   进行排列组合
x = list(itertools.permutations(sorted(list(data))))

# 3、将排列组合出来的数先转为字符串
# 4、然后通过 join 将其组合成一个字符串
# 5、将组合出的数字字符串加入新的 set 集合中
new_data = set()
for i in x:
    n_str = "".join([str(n) for n in i])
    new_data.add(n_str)

# 6、将新的 set 集合转换成列表进行排序,取第一个就是最小的
min_n = sorted(list(new_data))[0]
print(min_n)    # 7、输出最小排列组合的值

热心网友 时间:2022-04-18 10:12

用int会越界的,所以先转成str

数字拼接满足结合律,所以只需要保证每两个数拼接后更小就行了,即ij?ji。因此,可以使用冒泡排序,但是比较的条件变成'i'+'j' > 'j' + 'i',如果满足就交换。

输出用print(''.join(list))即可,python打印字符串的时候不会带''的。

代码是:

# -*- coding:utf-8 -*-

class Solution:

def PrintMinNumber(self,numbers):

if not numbers:

return ''

n = len(numbers)

for i in range(n):

numbers[i] = str(numbers[i])

print(numbers)

for i in range(n):

for j in range(i+1,n):

if numbers[i] + numbers[j] > numbers[j] + numbers[i]:

numbers[i],numbers[j] = numbers[j],numbers[i]

return ''.join(numbers)

热心网友 时间:2022-04-18 12:03

python中的数组,即使是*数组,貌似都是用的中括号表示吧? 花括号貌似都是针对字典的。

个人以为,可以先将原先的数组转换成列表,利用列表的内置方法排序并拼接后,再转换回去原来的格式。

原始数据,我不知道是什么格式。只是我以为,按照你的说法,跑不出元组、列表、字典等几种格式。这几种格式的转换相对还是比较简单的。

代码就不写了。个人以为这样的做法,应该比较合适。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在RLC电路中,谐振频率为___同期为___谐振条件为___? 电磁振荡并联 RLC振荡回路的谐振频率与振荡特性 佛手柑水培还是干放 中山市美派电器有限公司怎么样? 成都美派电器有限公司怎么样? 两条不同品牌的DDR3内存条可以一起用吗 驾驶证的牡丹卡多长时间能办下来 新衣服必须用洗衣液洗才能去甲醛吗? 梦见逛街被偷抢 2024年买什么品牌的运动男鞋比较好? Python实现的排列组合计算操作示例 &#xFFFC;Python列出多个数字组合相加的和最接近或等于某个数的算法? 华为14matebook14怎么样 matebook+14+2021款+锐龙测评,想知道这一款笔记本鲁大师能跑多少分? 求 魔法少女的哥哥~拙劣谎言和不良少年 的happy end 的攻略线 怎样更改开机画面? 怎样修改主板的开机画面或logo?(不要混淆了windows开机欢迎画面) 怎么把开机主板的图片改成自己想要的图片 如何在刷BIOS时更改开机画面? 修改bios开机画面 跪求!如何更改开机启动画面 电脑主板开机画面可以换吗? 华硕主板开机画面al 3怎么改 怎样改变主板开机画面 黄黑皮穿什么颜色衣服好看 黄皮的女生,适合什么样的衣服,显得皮肤白? 你知道什么颜色对于黄黑皮是比较友好的吗? 请问厦门有没有短租房租一个月这样子的,想找便宜的? 住十天左右短租房怎么找 在日本能不能短租一个月的房子?需要什么手续? python有四个数字1234,能组成多少个 python 有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数... 如何用python计算根据N组3个数字组成的排列计算出下一组排列的概率 python有四个数字,能组成多少个不同的三位数 python 写从1到7的整数中选取两个数的所有可能组合,同时显示组合的总个数 用Python编程1,2,3,4,5,6...到12,总共12个数、其中几个数字加起来等于39... 多个数字组合相加的和最接近或等于某个数的算法? 钓鲫鱼蚯蚓好用还是红虫好用 钓鱼用红虫好还是蚯蚓好 钓鱼用红虫好还是蚯蚓好? 钓鱼红虫好还是蚯蚓好 钓鱼用蚯蚓和红虫哪个效果更好,为何,有经验的回答? 北京冬奥会吉祥物冰墩墩一什么就受到了大家的喜爱? word文档不兼容打不开怎么办 小草app用wifi打不开 花草识别什么软件好用 一颗草的图案是什么App 小草app注册邀请码格式 有哪些有关种花花草草的app? 小草打开后怎么无法链接 ?