0
点赞
收藏
分享

微信扫一扫

【Leetcode·每日一题】重新排列日志文件

佳简诚锄 2022-05-03 阅读 46
leetcode

题目

重新排列日志文件:https://leetcode-cn.com/problems/reorder-data-in-log-files/
在这里插入图片描述

解题思路

  1. 区分字母日志和数字日志,放到两个数组中保存
  2. 字母日志排序
    2.1 判断除标识符外的内容是否相同
    2.2 不相同时,按字母顺序排序
    2.3 相同时,按标识符排序
  3. 合并字母日志、数字日志

代码

/**
 * @param {string[]} logs
 * @return {string[]}
 */
var reorderLogFiles = function(logs) {
    let ditArr = [], numArr = []
    logs.forEach(item=>{
        const arr = item.split(' ')
        isNaN(arr[1]) ? ditArr.push(item) : numArr.push(item)
    })

    ditArr = compare(ditArr)

    return [...ditArr, ...numArr]
};

function compare(arr){
    const sortArr =  arr.sort((a,b)=>{
        const [aIdentifier, ...aContent] = a.split(' ')
        const [bIdentifier, ...bContent] = b.split(' ')
        if(aContent.join(' ')===bContent.join(' ')){
            return aIdentifier < bIdentifier ? -1 : 1
        }else{
           return aContent < bContent ? -1 : 1
        }
    })
    return sortArr
}
举报

相关推荐

0 条评论