我的思路:
1.将nums变成字符串数组
2.对数组排序 再将排序后的数组合并成字符串
遇到的问题:
有的排序结果和题目不符合 eg:32和320 应该是320排在前面 但是sort函数会把32放在前面
题解代码:
def sort_rule(x, y):
a, b = x + y, y + x
if a > b: return 1
elif a < b: return -1
else: return 0
strs = [str(num) for num in nums]
strs.sort(key = functools.cmp_to_key(sort_rule))
return ''.join(strs)
这里定义了一个排序方法 sort_rule函数
将nums变成字符串数组
对字符串数组按照定义的排序规则排序
将排序后的数组合并成字符串
代码备注:
sorted(iterable,key,reverse)
key=函数 按照某规则排序
reverse=True/False 顺序逆序
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str.join(sequence)