华为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(" ");
            }
        }
    }
}
相关推荐
旷世奇才李先生11 分钟前
Next.js 安装使用教程
开发语言·javascript·ecmascript
木头没有瓜11 分钟前
idea离线安装插件
java·ide·intellij-idea
llwszx21 分钟前
Spring中DelayQueue深度解析:从原理到实战(附结构图解析)
java·后端·spring·delayqueue·延迟任务
述雾学java36 分钟前
Spring Cloud Feign 整合 Sentinel 实现服务降级与熔断保护
java·spring cloud·sentinel
保持学习ing36 分钟前
苍穹外卖day3--公共字段填充+新增菜品
java·阿里云·实战·springboot·前后端·外卖项目·阿里云文件存储
charlie1145141911 小时前
深入理解Qt的SetWindowsFlags函数
开发语言·c++·qt·原理分析
77qqqiqi1 小时前
正则表达式
java·后端·正则表达式
厦门德仔1 小时前
【WPF】WPF(样式)
android·java·wpf
大春儿的试验田1 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
Gappsong8741 小时前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全