LeetCode题解(0937):自定义排列日志文件(Python)

    技术2022-07-20  64

    题目:原题链接(简单)

    标签:字符串、排序

    解法时间复杂度空间复杂度执行用时Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N) O(N)44ms (86.44%)Ans 2 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N) O(N)32ms (100.00%)Ans 3 (Python)

    解法一(字母日志单独自定义排序):

    def reorderLogFiles(self, logs: List[str]) -> List[str]: def info(lg): idx = lg.index(" ") return lg[idx + 1:] + lg[:idx] d_logs = [] # 数字日志 a_logs = [] # 字母日志 for log in logs: if log[log.index(" ") + 1].isalpha(): a_logs.append(log) else: d_logs.append(log) a_logs.sort(key=info) return a_logs + d_logs

    解法二(统一自定义排序):

    def reorderLogFiles(self, logs: List[str]) -> List[str]: def helper(log): id_, content = log.split(" ", 1) return (0, content, id_) if content[0].isalpha() else (1,) return sorted(logs, key=helper)
    Processed: 0.010, SQL: 9