欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > OJ-1017中文分词模拟器

OJ-1017中文分词模拟器

2024/10/23 22:40:57 来源:https://blog.csdn.net/wsd_ontheroad/article/details/143013432  浏览:    关键词: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));}
}


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com