题解 | 字符串排序

字符串排序

https://www.nowcoder.com/practice/9ad2f07d6eb74a6e935e54279b29910d


import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
       String s=in.next();
       //自定义大小
       Map<Character,Integer> hash=new HashMap<>();
       int length=s.length();
       for(int i=0;i<length;i++){
        hash.put(s.charAt(i),i);
       }
       int n=in.nextInt();
       List<String> list=new ArrayList<>();
       for(int i=0;i<n;i++){
        list.add(in.next());

       }
       //对list排序
       Collections.sort(list,(l,t)->{
        int minlen=Math.min(l.length(),t.length());
        for(int i=0;i<minlen;i++){
            char c1=l.charAt(i);
            char c2=t.charAt(i);
            if(c1!=c2){
                return Integer.compare(hash.get(c1),hash.get(c2));
            }

        }
        return Integer.compare(l.length(),t.length());
       });
       for(String m:list){
        System.out.println(m);
       }
    }
}

全部评论

相关推荐

2025-12-18 12:05
门头沟学院 银行其它
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务