题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

import java.util.*;
/**
关键点:按照字典排序。
**/
public class Main {
     public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int total = 0;
        ArrayList<String> list = null;
        while (in.hasNextLine()) {
            if (total == 0) {
                total = Integer.parseInt(in.nextLine());
                list = new ArrayList<String>(total);
            } else {
                list.add(in.nextLine());
                total--;
                if (total <=0) {
                    Collections.sort(list, new Comparator<String>() {
                        @Override
                        public int compare(String o1, String o2) {
                            int len1 = o1.length();
                            int len2 = o2.length();
						    //找到最小公共长度
                            int minlen=Math.min(len1,len2);
                            //处理公共长度部分,从第一位开始,如有不同则比较出结果
                            for (int i = 0; i < minlen;i++) {
                                if (o1.charAt(i)<o2.charAt(i))
                                    return -1;
                                else if(o1.charAt(i)>o2.charAt(i))
                                    return 1;
                            }
                            //公共长度部分完全相同,根据长度定顺序
                            return len1-len2;
                        }
                    });
                    for (String s : list) {
                        System.out.println(s);
                    }
                    break;
                }

            }
        }

    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务