重新排列日志文件
- 所有 字母日志 都排在 数字日志 之前。
- 字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序;
- 数字日志 应该按原来的顺序排列。
- 返回日志的最终顺序。
使用 join / split / localeCompare 处理
- Runtime: 92 ms, faster than 47.38%
- Memory Usage: 45.7 MB, less than 7.91%
/**
* @param {string[]} logs
* @return {string[]}
*/
var reorderLogFiles = function(logs) {
let digits = []
let letters = []
digits = logs.filter(item => {
return item.split(' ')[1] >= 0
})
letters = logs.filter(item => {
return item.split(' ')[1] >= 'a'
})
letters.sort((a, b) => {
const [id1, ...arr1] = a.split(' ')
const [id2, ...arr2] = b.split(' ')
const str1 = arr1.join(' ')
const str2 = arr2.join(' ')
if (str1 === str2) {
return id1.localeCompare(id2)
} else {
return str1.localeCompare(str2)
}
})
return letters.concat(digits)
};
网友评论