AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2488. 中文分词模拟器

中等通过率 47% · 提交 307 · 通过 145
模拟字符串贪心

小慕正在开发一个智能文本分析工具,需要处理一段连续且不含空格的字符串。该字符串只包含英文小写字母以及英文标点符号(逗号、分号、句号)。同时,小慕有一个预设,要求对该字符串进行。 说明: 1. 精确分词:字符串分词后,不会出现重叠。例如"ilovechina",不同词库可分割为"i, love, china"或"ilove, china",但不能出现重叠的"i, ilove, china",因为"i"和"ilove"重叠。 2. 标点符号不成词,仅用于断句。 3. 词库:根据外部知识库统计出来的常用词汇,例如:dictionary=["i", "love", "china", "lovechina", "ilove"] 4. 分词原则:采用。 例如: "ilovechina",假设分词结果有[i, ilove, lo, love, ch, china, lovechina] 则输出 [ilove, china] 错误输出:[i, lovechina] 原因:"ilove"优先于"lovechina"成词。 错误输出:[i, love, china] 原因:"ilove"比"i"更长,遵循最长匹配原则。

提示:带虚线的词点一下有通俗解释。

输入描述

字符串长度限制:0<length<256 词库长度限制: 1<length<100000 第一行输入待分词语句 第二行输入中文词库

输出描述

按顺序输出分词结果

示例

示例 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

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

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
分词顺序优先且最长匹配原则示例 输入字符串: ilovechina 词库: [i, ilove, lo, love, ch, china, lovechina] 步骤1:从位置0开始,最长匹配 i (长度1) ilove (长度5) ✓ → 选择“ilove” 步骤2:从位置5开始,最长匹配 ch (长度2) china (长度5) ✓ → 选择“china” 最终分词结果: ilove , china
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「中文分词模拟器」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。