华为 2022 笔试

Leetcode Link: N/A

题目

给定一段英文句子和一个英文单词列表。英文句子包含英文单词和标点符号,其中:

  1. 英文单词只包含[a-zA-Z]范围内的字符;
  2. 标点符号包括逗号、句号、双引号 (双引号两边至少有一个空格)。

如果列表中有单词在句子中存在(大小写不敏感)且该单词未被双引号包含,则使用该单词在列表中的索引值(索引值从0开始)代替句子中的该单词,如果英文单词列表中存在重复的英文单词,则以该单词最后一次出现的索引值进行替换。

输入描述 第一行:一段英文句子 第二行:英文单词列表

提示: 每个英文单词长度在[150]范围内。 输入的英文句子长度在[0,10000]范围内。 输入的英文单词列表长度在[0,100000]范围内。 英文句子中不会出现双引号不匹配的情况。

Hello world.
Good Hello LOOP

解释: hello在英文句子中存在,则使用hello的索引值进行替换,得到结果为1world.

输出描述 替换后的英文句子

1world.

解法一

思路

题解

解法二

思路

题解

解法三

思路

题解

启发和联系