深信服校园招聘算法练习卷

时长:120分钟 总分:100分

694浏览 6人已完成答题

题型介绍
题型 填空题
数量 4
1.
重复串查找
问题详情

一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串。
给定任意字符串,请帮小强找出其中的最长重复子串。

输入描述: 输入一个字符串s,其中s长度小于1e4而且只包含数字和字母。输入样例: xabcabcx 输出描述: 输出一个整数,表示s的最长重复子串长度,若不存在则输出0输出样例 6
2.
百分号解码
问题详情

在URL字符串中,如果百分号%后面跟了两个十六进制数字,那么它表示相应ASCII值所对应的字符,如%2F表示'/',%32表示'2'。%编码还可以进行嵌套,如%%32F可以解码成%2F,再进一步解码成/。如果没有任何百分号后面跟的是两个十六进制数字则无法再进行解码。

现在有一系列的URL,小强希望你帮忙进行百分号解码,直到无法再解码为止。
输入描述: 第一行一个正整数T(T<=10),表示T个测试样例;
对于每个测试样例,
输入字符串s,字符串不包含空白符且长度小于100,000。

有部分测试样例的字符串长度<=1,000。输入样例: 1 %%32F 输出描述: 输出T行,每行一个字符串,表示解码后的结果。输出样例 /
3.
矿泉水问题
问题详情

小明横穿沙漠,需要携带至少x毫升的水。

有两种规格的矿泉水可供选购:小瓶矿泉水每瓶500ml,价格a元。大瓶矿泉水每瓶1500ml,价格b元。

小明打算买一些矿泉水用于横穿沙漠,为了保证至少买到x毫升的水,小明至少需要花费多少钱?

输入描述: 第一行一个正整数t(t<=1000),表示有t组测试数据

接下来t行,每行3个正整数:x,a,b。其中x<=1,000,000,000,表示小明至少需要x毫升水;a<=100,b<=100,分别表示小瓶和大瓶矿泉水的价格,单位:元。输入样例: 3 5000 5 10 4999 5 10 5000 5 100 输出描述: 每组测试数据输出一行,表示小明最少需要花费的钱,单位:元。输出样例 35 35 50
4.
子数组查找
问题详情

给定长度为N的整数数组,以及M个互不相同的整数,请找出包含这M个整数的最短子数组。

例如:给定数组[4 2 1 3],包含数字集{2, 3}的最短子数组是[2 1 3],包含数字集{1, 3}的最短子数组是[1 3]。
输入描述: 第一行一个正整数T(T<=10),表示T个测试样例;
对于每个测试样例,
输入正整数N(N<=100,000),表示数组长度;
接下来输入N个正整数,所有整数都>=0且<=1,000,000,000;
输入正整数M(M<=N),表示M个互不相同的整数;
接下来输入M个整数,表示要查询的整数,已保证互不相同。

有部分测试样例满足N<=1,000。输入样例: 1 4 4 2 1 3 2 2 3 输出描述: 输出T行,每行一个正整数,表示最短子数组的长度。如果不存在,输出0输出样例 3