【华为校园招聘软件】2022-08-31


【编程题目 | 100分】字符串压缩 [ 2023 校园招聘 考试题 ]


编程题 第1/3题


1.字符串压缩


本题可使用本地IDE编码,不能使用本地已有代码。

无跳出限制,编码后请点击 “保存并提交” 按钮进行代码提交。


解答要求

时间限制:C/C++ 1000ms | 其他语言 2000ms

空间限制:C/C++ 256MB | 其他语言 512MB

64bit IO Format:%lld


题目描述

给定—段英文句子和一个英文单词列表。英文句子包含英文单词和标点符号,其中:
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

输出:

world.

样例2

输入:

An introduction is " the first paragraph " of your paper.
what say first Second IS introduction IS end

输出:

An 5 6 " the first paragraph ” of your paper.

解释:

字符串列表中的introduction、IS在句子中存在,first虽然在句子中也存在但是被双引号包含了,

所以使用introduction单词、IS单词(最后一次出现)的索引值进行替换,

得到结果为An 5 6 “ the first paragraph ” of your papger


代码实现


JAVA


import java.util.HashMap;
import java.util.Scanner;

public class Main {

    Scanner scanner = new Scanner(System.in);

    String line = "";

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++


#include<bits/stdc++.h>

using namespace std;

map<string, int> aa;

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看