当前位置: 首页 > 面试经验 >

华为软件开发笔试-2

优质
小牛编辑
148浏览
2023-03-28

华为软件开发笔试-2




题型:3道编程题


题目1


1、字符串压缩


给定一段英文句子和一个英文单词列表。


英文句子包含英文单词和标点符号,其中:


1)英文单词只包含[a-zA-Z]范围内的字符;


2)标点符号包括逗号、句号、双引号(双引号两边至少有一个空格)


如果列表中有单词在句子中存在(大小写不敏感)且该单词未被双引号包含,则使用该单词在列表中的索引值(索引值从0开始)代替句子中的该单词,


如果英文单词列表中存在重复的英文单词,则以该单词最后一次出现的索引值进行替换。


解答要求


时间限制: C/C++ 400ms,其他语言:800ms


内存限制: C/C++200MB,其他语言:400MB


 


输入


第一行:一段英文句子


第二行:英文单词列表


提示:


每个英文单词长度在[1,50]范围内。


输入的英文句子长度在[0,10000]范围内。


输入的英文单词列表长度在[0,100000]范围内。


英文句子中不会出现双引号不匹配的情况。


输出


替换后的英文句子


 


样例1


输入:Hello world.


Good Hello LOOP


输出:1 world.


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


 


样例2


输入:An introduction is " the first paragraph " of your paper.


what say first Second IS introduction IS end


复制输出:An 56" the first paragraph " of your paper.


解释:字符串列表中的introduction, IS在句子中存在,first虽然在句子中


也存在但是被双引号包含了,所以使用introduction单词、IS单词(最后一次出现)的索引值进行替换,得到结果为An 5 6" the first paragraph" of your papger


 


题目2


2、士兵的任务2


士兵在迷宫中执行任务,迷宫中危机重重,他需要在在最短的时间内到达指定的位置。你可以告诉士兵他最少需要多长时间吗?


输入一个n*m的迷宫中,迷宫中0为路,1为墙,2为起点,3为终点,4为陷阱,6为炸弹。士兵只能向上下左右四个方向移动,如果路径上为,1,3,



 类似资料: