HJ14 字符串排序

该题解介绍了一种字符串排序方法,通过比较ASCII值来确定字符串顺序。在两个字符串中,首先比较每个对应位置的字符,ASCII值小的字符串排在前面。如果所有字符都相同,则根据字符串长度决定顺序。此方法的时间复杂度为O(n)。
摘要由CSDN通过智能技术生成

题目

HJ14 字符串排序

题解

按照字符依次判断,ASCII小的在前面,当前字符相等则判断下一个字符,这也是String源码compareTo方法排序算法。

    public Comparator<String> stringComparator() {
        return (s1, s2) -> {
            int len1 = s1.length();
            int len2 = s2.length();
            int minLength = len1 > len2 ? len2 : len1;

            char[] c1 = s1.toCharArray();
            char[] c2 = s2.toCharArray();
            int index = 0;
            while (index < minLength) {
                char char1 = c1[index];
                char char2 = c2[index];
                if (char1 != char2) {
                    return char1 - char2;
                }

                index++;
            }

            return len1 - len2;
        };
    }

时间负责度:O(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值