华为OD统一考试 - 中文分词模拟器

题目描述

给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。

说明:

  1. 精确分词:字符串分词后,不会出现重叠。即"ilovechina",不同词库可分割为"i,love,china","ilove,china",不能分割出现重叠的"i,ilove,china",i 出现重叠
  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"遵循最长匹配原则

输入描述

第一行输入待分词语句 "ilovechina"

  • 字符串长度限制:0 < length < 256

第二行输入中文词库 "i,love,china,ch,na,ve,lo,this,is,this,word"

  • 词库长度限制:1 < length < 100000

输出描述

按顺序输出分词结果 "i,love,china"

用例

输入

ilovechina

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

输出

i,love,china

说明

输入

iat

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

输出

i,a,t

说明

单个字母,

不在词库中且不成词则输出单个字母

输入

ilovechina,thewordisbeautiful

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

输出

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

说明

标点符号为英文标点符号

题目解析

本题感觉题意不是很清晰。

我对题目的理解是:

句子:ilovechina

词库:[i,love,china,ch,na,ve,lo,this,is,the,word]

现在要用词库里面的词汇组成句子。并且选择词汇时,优先选择词库中靠前的,且长度最长的。

比如组成句子“ilovechina”的第一个词汇,必然是 "i" 开头的,因此我们去词库中找 "i" 开头的词汇,按词库顺序依次是:

  • i
  • is

其中 is 虽然是 i 开头,但是不符合句子后续部分要求,因此选择词库中词汇 “i”。

此时句子还剩下 "lovechina" 没有分词,则继续在词库中查找 "l" 开头的词汇,按词库顺序依次是:

  • love
  • lo

其中 "love" 是顺序靠前,且长度较长的,因此选择词库中词汇 "love"。

此时句子还剩下 "china" 没有分词,则继续在词库中查找 "c" 开头的词汇,按词库顺序依次是:

  • china
  • ch

其中 "china" 是顺序靠前,且长度较长的,因此选择词库中词汇 "china"。

此时句子"ilovechina" 完成分词,分词结果为:["i", "love", "china"]。

本题,我的疑惑主要在于用例2:

句子:"iat"

词库:[i,love,china,ch,na,ve,lo,this,is,the,word,beauti,tiful,ful]

按照之前的逻辑,首先找到组成句子的第一个词汇,该词汇必然以"i"开头,则匹配到词库中的词汇"i"。

接下来句子还剩"at",再去

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024华为OD机试卷题 文章被收录于专栏

本专栏给大家提供了华为2024最新华为OD 题目汇总。华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论
没有python代码吗?
点赞 回复 分享
发布于 10-21 09:46 云南

相关推荐

头像
10-23 19:59
已编辑
西安电子科技大学 后端
ICT,软开Java,前两面技术面,三面主管面。10.17一面&nbsp;&nbsp;1h1.主问实习项目,挑了一个在美团的细说了其中背景、思路、方案、遇到的问题。2.你说你参与解决线上问题,挑一个印象深刻的讲。讲了解决线上db死锁的一个case。3.你有写有良好编码习惯,说一下有哪些。4.顺着上一条,还有什么方法可以避免npe的。5.设计模式学过吗。这里我联系spring源码学习和之前做的需求,讲了模板方法模式&nbsp;&nbsp;责任链模式&nbsp;里氏替换原则依赖倒置原则等6.你刚才提到多态&nbsp;依赖倒置与解耦,说一下他们是怎么做到解耦的7.手撕,让我在那一打子试题纸里随便挑一道(这下纯走个形式了hh),我看第一张是个最简陋的二分,好,就你了。做完又给我一道&nbsp;&nbsp;也是easy题讲了思路即可了。二面&nbsp;&nbsp;1h跟一面有很多重复尤其是讲实习项目这上,就不赘述了。1.如何设计一个定时任务调度平台,应该有哪几个系统,如何交互,交互数据有哪些。任务a还没执行完&nbsp;&nbsp;又到了定时调度任务a的时间,&nbsp;这时候该发生什么&nbsp;如何实现2.如何嗅到代码坏味道,就此聊了重构和设计模式,细说了在哔哩实习的一个重构需求。3.讲一下实习过程与人合作完成很有成就感的事。细说了做一个主要沟通为多的需求,又问到有没有出现扯皮情况&nbsp;&nbsp;对方很忙你又该怎么办&nbsp;&nbsp;4.手撕,最长递增子序列三面&nbsp;&nbsp;30min我都想好每条🌸为企业价值观怎么有理有据展开表达认同了明明,结果还是&nbsp;主问实习经历细节。上来先问我是怎么有课去实习的&nbsp;老师知道吗&nbsp;&nbsp;考试怎么办,爆了是偷跑去实习。非技术问题:聊了why不读研和城市喜好(亮明沪孝子成分)过后hr跟我线下单独聊了offer意向城市意向薪资意向考虑怎么选择之类话题。开泡。 #面经# #华为# #秋招# #爱国#
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务