华为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(" ");
            }
        }
    }
}
相关推荐
智购科技自动售货机工厂13 分钟前
2026自动售货机异常重启根因分析:从日志挖掘到内存取证的技术实践~YH
开发语言·数据库·单片机·嵌入式硬件·人机交互
奈斯先生Vector18 分钟前
从“能调用”到“可运营”:AI Agent 进入多模型时代后的架构升级
java·javascript·数据库·人工智能·算法·架构·aigc
Escalating_xu19 分钟前
【C++类和对象(上)】从类的定义、封装与对象模型到内存对齐和 this 指针
开发语言·前端·c++
Json____21 分钟前
宿舍安全卫生检查系统:Node 全栈开发实战
java·前端·数据库·毕业设计·课程设计·毕设·wwwoop.com
阿里嘎多学长24 分钟前
2026-08-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
pnoker24 分钟前
36 个驱动模块:应对协议碎片化
java·物联网·modbus·工业互联网·opc ua
码上有光25 分钟前
Linux:进程控制和进程替换
java·linux·服务器·进程控制·进程替换
默辨27 分钟前
我用Java后端的视角读了一遍JoyAgent-JDGenie
java·开发语言
常山云栈29 分钟前
如何理解python中的鸭子模(类)型?
开发语言·python