- 【21python能力赛】尽可能大的数
关于《尽可能大的数》测试点的讨论
- @ 2023-11-29 22:07:48
原题链接🔗 【21python能力赛】尽可能大的数
关于这道《尽可能大的数》,我个人认为它的测试点(5个)不够具体充分,有些代码虽然没有完全正确,但这5个测试点仍然能够通过。
这道题,AC的做法(借鉴了ymx同志的方法)如下: (Python)
n = int(input())
l = input().split()
l.sort(reverse=True)
for i in l:
print(i,end='')
代码本身很好理解,利用字符串的大小来进行排序,但是在下述这种情况下,代码似乎不能给出正确答案。
当测试数据中存在类似于“90”和“9”的情况下。990显然是大于909的,但是根据字符串的大小,“90”大于“9”,此时输出为“909”,而不是“990”。因此上面所提供的AC代码,并不足够完美。
而上述代码之所以能够AC,想必是因为这5个测试点并没有包含我所提到的错误情况,我希望题目提供者LaoShui能够完善一下测试点。
同时,我也希望各位同学帮忙提供更加完美的代码,评论在 该讨论下方,谢谢🙏
1 条评论
-
海阔天空 (cqylcy) LV 9 @ 2023-11-30 13:01:44已修改n=int(input()) l=list(map(int,input().split())) ss="" for i in range(len(l)): a=0 b=l[0] for i in l: if i*(10**(len(l)-len(str(i))))>a: a=i*(10**(len(l)-len(str(i)))) b=i l.remove(b) ss+=str(b) print(ss)语文课上想的,受到了贪心算法的影响,一遍AC5
- 1
信息
- ID
- 1844
- 时间
- ms
- 内存
- MiB
- 难度
- 8
- 标签
- 递交数
- 25
- 已通过
- 6
- 上传者