给定一个3位数的数字,请编写一个函数,将它重新排列,并找出其中值最大的形式。
示例:
输入:123,输出:321。
题目难度:简单
题目来源:Rearrange Number to Get its Maximum
def solution(num: int) -> int:
# your code
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
给定一个3位数的数字,请编写一个函数,将它重新排列,并找出其中值最大的形式。
示例:
输入:123,输出:321。
题目难度:简单
题目来源:Rearrange Number to Get its Maximum
def solution(num: int) -> int:
# your code
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
def solution(num: int) -> int:
return int(''.join([i for i in sorted(list(str(num)), reverse=True)]))
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
def solution(num: int) -> int:
return int(''.join(sorted([i for i in str(num)], reverse=True)))
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
return int(''.join([i for i in sorted(list(str(num)), reverse=True)]))
def solution(num: int) -> int:
return int(''.join([i for i in sorted(str(num),reverse=True)]))
def solution(num: int) -> int:
L = [item for item in list(str(num))]
L.sort(reverse=True)
return int(''.join(L))
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
def solution(num: int) -> int:
return int("".join(sorted(list(str(num)),reverse=True)))
def solution(num: int) -> int:
return int(''.join([i for i in sorted(str(num),reverse=True)]))
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
def solution(num: int) -> int:
l = "".join(sorted([ i for i in str(num)],reverse=True))
return int(l)
def solution10(num:int):
ll=list(str(num))
ll.sort(reverse=True)
ss_num=''
for i in ll:
ss_num+=i
return int(ss_num)
assert solution10(123) == 321
assert solution10(666) == 666
assert solution10(109) == 910
def solution(num: int) -> int:
return int(''.join(sorted(str(num), reverse=True)))
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
看来大家基本都是一个思路,我来拆分下细节
def solution(num: int) -> int:
# your code
# 转换成字符串
str_num = str(num)
# 拿到每一个值,变成列表
num_lis = [int(i) for i in str_num]
# 将列表进行排序
num_lis.sort(reverse=True)
# 把列表转换成字符串
new_str = [str(j) for j in num_lis]
# 字符串转换为整数
final_res = int(''.join(new_str))
return final_res
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
def solution(num: int) -> int:
return int(''.join(sorted([i for i in str(num)],reverse=True)))
assert solution(123) == 321
assert solution(666) == 666
assert solution(109) == 910
def solution(num: int) -> int:
num=list(str(num))
for i in range(len(num)):
for j in range(i+1,len(num)):
if int(num[j])>int(num[i]):
num[i],num[j]=num[j],num[i]
return int(''.join(num))
1.字符串转换不能直接用sort,使用sorted,结果为一个列表
2.强制转换 (int)() 这里有两个括号
def max_redigit(num):
if(num > 99 and num < 1000):
s = str(num)
s2 = sorted(s)
n = len(s)
ans = 0
for i in range(n):
ans += (int)(s2[i]) * 10**i
return ans
else:
return None
```
1.join函数,字符串添加,参数reverse
if(num > 99 and num < 1000):
return int("".join(sorted(str(num),reverse=True)))
else:
return None