You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现将任意整数转换为降序排列整数的Python函数?

解决数字降序排列的Python函数实现

哈哈,我太懂你那种一开始取巧写了反转,结果遇到非降序测试用例就翻车的感觉了!原来的写法只是把字符串倒过来,完全没做到按数字大小降序排列,咱们来把它改成真正符合需求的版本:

正确实现代码

def Descending_Order(num):
    # 1. 将整数转为字符串,方便逐个处理每个数字字符
    num_str = str(num)
    # 2. 对字符列表进行降序排序——数字字符的ASCII码顺序和数值顺序一致,直接排序就行
    sorted_digits = sorted(num_str, reverse=True)
    # 3. 把排序后的字符拼接成字符串,再转回整数返回
    return int(''.join(sorted_digits))

为什么这样写能解决问题?

咱们拿你的例子1201来走一遍流程:

  1. str(1201)得到字符串 "1201"
  2. sorted("1201", reverse=True)会按字符的ASCII值降序排列,得到列表 ['2', '1', '1', '0'](数字字符的ASCII顺序和数值大小是对应的,所以不用额外转整数再排序)
  3. ''.join(...)把列表拼成字符串 "2110",最后转成整数就是2110,完美符合你的需求!

测试几个边界情况

  • 输入0:返回0(转字符串后排序还是['0'],转整数正常)
  • 输入5:返回5(单个数字排序后不变)
  • 输入100:返回100(数字是1、0、0,降序排列还是1在前,两个0在后)
  • 输入7319:返回9731(完全打乱的数字也能正确排序)

这样写就真正实现了“把整数的数字按降序排列后返回整数”的需求,再也不用怕非降序的测试用例啦!

内容的提问来源于stack exchange,提问作者SirToews

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:27:24