题型: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,