937.重新排列日志文件
重新排列日志文件
给你一个日志数组 logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 。
有两种不同类型的日志:
- 字母日志:除标识符之外,所有字均由小写字母组成
- 数字日志:所有字均由数字组成
请按字母日志在前、数字日志在后的规则对日志进行排序。字母日志按内容字母序排序,相同的按标识符排序。数字日志相对顺序不变。
示例 1:
输入:logs = [“dig1 8 1 5 1”,”let1 art can”,”dig2 3 6”,”let2 own kit dig”,”let3 art zero”]
输出:[“let1 art can”,”let3 art zero”,”let2 own kit dig”,”dig1 8 1 5 1”,”dig2 3 6”]
提示:
- logs.length <= 100
- logs[i] 中标识符后面至少有一个词
- logs[i] 开头是字母
解析
分离字母日志和数字日志,对字母日志按规则排序,数字日志保持原顺序。
1 | var reorderLogFiles = function (logs) { |
时间复杂度 O(n log n),空间复杂度 O(n)。
937.重新排列日志文件
https://leetcode.lz5z.com/937.reorder-data-in-log-files/