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

P2703. 英文输入法

简单通过率 47% · 提交 1,431 · 通过 675
哈希表字符串排序模拟哈希集合

小慕正在开发一款英文输入法,遇到了一个单词联想功能的实现需求,具体如下: 1. 根据用户输入的,从已经输入的英文语句中联想出用户可能想输入的单词。 2. 将联想出的单词按输出,如果无法联想到任何单词,则直接输出用户输入的单词前缀。 注意: 1. 单词联想时区分大小写。 2. 缩略形式如“don’t”视为两个单词“don”和“t”。 3. 输出的单词序列中不能包含重复单词,且只能包含英文单词,不能含有标点符号。

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

输入描述

<p> 输入两行。 </p> <p> 首行输入一段由英文单词word和标点构成的语句str,接下来一行为一个英文单词前缀pre。 </p> <p> 0 < word.length() <= 20 </p> <p> 0 < str.length() <= 10000,0 < pre.length() <= 20 </p>

输出描述

输出符合要求的单词序列或单词前缀。存在多个时,单词之间以单个空格分割

示例

示例 1

输入

I love you
He

输出

He

说明:用户已输入单词语句"I love you",可以提炼出"I","love","you"三个单词。接下来用户输入"He" , 从已经输入信息中无法联想到符合要求的单词,所以输出用户输入的单词前缀。

示例 2

输入

The furthest distance in the world,Is not between life and death,But when I stand in front or you,Yet you don't know that I love you.
f

输出

front furthest

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

看不懂题目?点开图解
英文输入法单词联想流程 输入语句: "I love you" 提取单词: I, love, you 集合 输入前缀: "He" 检查每个单词是否以"He"开头 无匹配 → 输出前缀"He" 输出 另一个例子:前缀"f",匹配"front"和"furthest" 匹配单词: front, furthest 按字典序排序: front furthest 输出
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「英文输入法」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。