lc937.重新排列日志文件

 

题目链接

这没啥好说的,就按部就班就行,但是一部分一部分写出来肯定会有点丑,所以看了一下标准答案,把sorted的特性利用得很好了可以说。原来还能这么用啊。这个算法的时间复杂度是O(NlogN),空间复杂度是O(N)。

class Solution(object):
    def reorderLogFiles(self, logs):
        def f(log):
            id_, rest = log.split(" ", 1)
            return (0, rest, id_) if rest[0].isalpha() else (1,)

        return sorted(logs, key = f)