Python 自带的 sort() 函数默认是从小到大进行排序的,与C++的排序函数类似,也可以通过自定义排序函数来指定排序的规则。下面以牛客的一道例题来讲解:
这道题主要是对字符串数组按照字典序逆序进行排序,其中有两种特殊情况:
(1)空字符串排在最前;
(2)若一个短字符串是另一个长字符串的前缀则短字符串排在前面。
这里如果使用 python 自带的 sort / list.sort(),则是按照字典序升序排序。因此这里需要自定义排序函数,使其满足题目条件。
import functools
def mysort(x, y):
if y.startswith(x