华为OD机考-英文输入法-逻辑分析(JAVA 2025B卷)


java 复制代码
import java.util.*;

public class EnglishSpell {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            String line = sc.nextLine();
            // don't-> don t
            if(line.contains("'")){
                line  = line.replace("'", " ");
            }
            String[] source = line.split("\\s+");
            String target = sc.nextLine();
            test(source,target);
        }
    }

    private static void test(String[] source,String target){
        HashSet<String> set = new HashSet<>();
        for(String s:source){
            // delete comma and dot
            if(!Character.isLetter(s.charAt(s.length()-1))){
                set.add(s.substring(0,s.length()-1));
            }else{
                set.add(s);
            }
        }
        List<String> sb = new ArrayList<>();
        for(String s:set){
            // find target word
            if(s.startsWith(target)){
                sb.add(s);
            }
        }
        if(sb.isEmpty()){
            System.out.println(target);
            return;
        }
        sb.sort(String::compareTo);
        for(int i=0;i<sb.size();i++){
            System.out.print(sb.get(i));
            if(i!=sb.size()-1){
                System.out.print(" ");
            }
        }
    }
}
相关推荐
唐青枫14 小时前
Java Gradle 实战指南:从 Wrapper、Kotlin DSL 到 Spring Boot 多模块构建
java·kotlin·gradle
浪客川14 小时前
Android的SystemUI的启动流程简析
android·开发语言
带刺的坐椅14 小时前
Solon TeamAgent 协作协议:从 SEQUENTIAL 流水线到 HIERARCHICAL 主管团队
java·ai·llm·agent·solon
wuqingshun31415914 小时前
SpringBoot是如何实现自动配置的
java·spring boot·后端
用户0537040314314 小时前
我的学习记录泛型
java
-银雾鸢尾-14 小时前
C#中的抽象类与抽象方法
开发语言·c#
zhouhui00114 小时前
AI帮我写了个Spring Boot校验,线上漏掉了这组边界条件
java·spring boot·redis·ai编程
JRedisX14 小时前
Java从零手写企业级内存数据库
java
萧瑟余晖14 小时前
JDK 20 新特性详解
java·开发语言
benchmark_cc14 小时前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据