OJ-1017中文分词模拟器

示例0

输入:

ilovechina

i,ilove,lo,love,ch,china,lovechina

输出:

ilove,china

示例1

输入:

ilovechina

i,love,china,ch,na,ve,lo,this,is,the,word

输出:

i,love,china

说明:

示例2

输入:

iat

i,love,china,ch,na,ve,lo,this,is,the,word,beauti,tiful,ful

输出:i,a,t

说明:单个字母,不在词库中且不成词则直接输出单个字母

示例3

输入:

ilovechina,thewordisbeautiful

i,love,china,ch,na,ve,lo,this,is,the,word,beauti,tiful,ful

输出:

i,love,china,the,word,is,beauti,ful

说明:标点符号为英文标点符号

复制代码
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;


public class 中文模拟分词器2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        List<String> dict = Arrays.asList(in.nextLine().split(","));
        
        int len = input.length();
        StringBuilder sb = new StringBuilder();
        int i = 0;
        while (i < len) {
            int j = len;
            boolean found = false;
            while (j > i) {
                String s = input.substring(i, j);
                if (s.matches("[a-zA-Z]+") && (dict.contains(s) || s.length() == 1)) {
                    sb.append(s).append(",");
                    found = true;
                    i = j;
                    break;
                }
                j--;
            }
            if (!found) {
                i++;
            }
        }
        System.out.println(sb.substring(0, sb.length() - 1));
    }
}
相关推荐
工边页字几秒前
图文教学,服务端如何发送(钉钉 +飞书 )机器人通知
java·前端·后端
tuokuac9 分钟前
Spring 最核心的注解@Bean本质
java·后端·spring
jiankeljx10 分钟前
Spring Boot 经典九设计模式全览
java·spring boot·设计模式
Lyyaoo.10 分钟前
Spring中的拦截器
java·后端·spring
工程师老罗11 分钟前
LVGL文本显示问题,编码问题
java·开发语言
黑眼圈子13 分钟前
牛客刷题记录5
java·开发语言·学习·算法
wuqingshun31415914 分钟前
说说你对spring的IOC的理解
java·后端·spring
罗湖老棍子16 分钟前
【例 2】A Simple Problem with Integers(信息学奥赛一本通- P1548)
数据结构·算法·线段树·区间修改 区间查询
NGC_661119 分钟前
ConcurrentHashMap介绍
java·开发语言
abant220 分钟前
leetcode 148 排序链表 归并终极形态
算法·leetcode·链表