如何实现将任意整数转换为降序排列整数的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来走一遍流程:
str(1201)得到字符串"1201"sorted("1201", reverse=True)会按字符的ASCII值降序排列,得到列表['2', '1', '1', '0'](数字字符的ASCII顺序和数值大小是对应的,所以不用额外转整数再排序)''.join(...)把列表拼成字符串"2110",最后转成整数就是2110,完美符合你的需求!
测试几个边界情况
- 输入
0:返回0(转字符串后排序还是['0'],转整数正常) - 输入
5:返回5(单个数字排序后不变) - 输入
100:返回100(数字是1、0、0,降序排列还是1在前,两个0在后) - 输入
7319:返回9731(完全打乱的数字也能正确排序)
这样写就真正实现了“把整数的数字按降序排列后返回整数”的需求,再也不用怕非降序的测试用例啦!
内容的提问来源于stack exchange,提问作者SirToews
相关产品推荐
相关产品推荐

