尝试获取一个整数并将其作为降序整数从函数返回。你知道吗
我先是这样做的:
def Descending_Order(num):
n = str(num)
return(int(n[::-1]))
因为测试中只有降序的数字;有点俗气,但它起作用了。。现在我想做一个任意数的数,让它从大到小返回。你知道吗
如您所见,我尝试将int转储到字符串(n)中,并像处理数组一样对其进行操作。你知道吗
例如:
1201将返回2110
def Descending_Order(num):
n = str(num)
i = 0
swap = 0
while i < len(n):
if i+1>len(n):
break
elif n[i] < n[i+1]:
swap = n[i]
n[i]= n[i+1]
n[i+1]=swap
i+=1
else:
i+=1
return(n)
print(Descending_Order(1201))
字符串是iterable的,因此可以将它们传递到
sorted
中,如下所示:^{} 返回一个列表,因此
sorted('87491', reverse=True)
将返回:将列表传递到^{} (链接到join方法的解释)将返回:
正如其他答案所指出的,这是一个排序问题。您可以使用内置的排序函数,但这可能需要(相对)较长的时间,而且如果您刚刚开始,最好编写自己的实现,而不是依赖库魔术。你知道吗
因为我们只对0到9之间的整数进行排序,所以我们可以使用比python的
sorted
使用的timsort更快的排序算法。你知道吗我们要做的是计算每个数字出现的次数。然后我们构造一个数字,它的9和原来的一样多,然后是8。。。直到0。你知道吗
一个很好的单行线(基本上和上面一样:变成一个字符串,反向排序,回到int):
相关问题 更多 >
编程相关推荐