【秋招笔试题】多多排序

解法:简单语法题

java 复制代码
package com.sky;

import java.util.*;

public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();

        List<String> words = new ArrayList<>(N);

        for (int i = 0; i < N; i++) {
            String word = sc.next();
            words.add(word);
        }

        Comparator<String> customComparator = (s1, s2) -> {
            boolean s1Contains = s1.contains("PDD");
            boolean s2Contains = s2.contains("PDD");
            if (s1Contains && !s2Contains) {
                return -1;
            } else if (!s1Contains && s2Contains) {
                return 1;
            } else {
                return s1.compareTo(s2);
            }
        };

        Collections.sort(words, customComparator);

        for (int i = 0; i < M; i++) {
            System.out.println(words.get(i));
        }

    }
}
相关推荐
别惹CC几秒前
Spring AI 进阶之路05:集成 MCP 协议实现工具调用
java·人工智能·spring
Dylan的码园2 分钟前
队列与queue
java·数据结构·链表
Miketutu2 分钟前
Dart基础学习
开发语言·windows
bybitq5 分钟前
Go中的闭包函数Closure
开发语言·后端·golang
FirstFrost --sy5 分钟前
Qt控件美化:LineEdit与CheckBox实战
开发语言·qt
Seven977 分钟前
一文讲清楚图论相关算法
java
Yusei_05237 分钟前
Redis核心特性与应用全解析
开发语言·数据库·c++·redis·缓存
长安第一美人8 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan8 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
superman超哥9 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉