每日一道Leetcode - 937. 重新排列日志文件【排序】

在这里插入图片描述

class Solution {
    public String[] reorderLogFiles(String[] logs) {
        Arrays.sort(logs,(log1,log2) -> {
            // 对于任意一对日志(log1,log2)

            // 每个log按空格拆分为两个字符串存入数组
            String[] split1 = log1.split(" ",2);
            String[] split2 = log2.split(" ",2);
            // 根据后面日志判断是字母日志还是数字日志
            // 判断指定字符是否为数字
            boolean isDigit1 = Character.isDigit(split1[1].charAt(0));
            boolean isDigit2 = Character.isDigit(split2[1].charAt(0));
            // 如果均为字母日志,比较大小
            if(!isDigit1 && !isDigit2){
                int cmp = split1[1].compareTo(split2[1]);
                // 两个字符串不相等,排序
                if(cmp != 0) return cmp;
                // 两个字符串相等,比较标识符
                return split1[0].compareTo(split2[0]);
            }
            // 否则看是数字日志还是字母日志,如果都是数字日志,就是按照原来的顺序吧,数字日志要在字母日志之前
            return isDigit1 ? (isDigit2 ? 0:1):-1;
        });
        return logs;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值