深信服校园招聘c/c 软件开发D卷

时长:120分钟 总分:100分

660浏览 4人已完成答题

题型介绍
题型 填空题
数量 3
1.
二进制位反序
问题详情

编写函数reverse,将val(32位无符号整数)的二进制位反序。比如,如果val的二进制表示为1011000011111111,反序后val的二进制表示为1111111100001101。

unsigned int reverse(unsigned int val)
{
}


输入描述: 16进制的一个无符号整数输入样例: 0x1 输出描述: 16进制的一个无符号整数输出样例 80000000
2.
统计累加算式
问题详情

一个正整数可以表示为多个正整数相加的表达式,表达式中的各个正整数要求都是2的幂。例如给定正整数7,它有下列六个符合要求的表达式:
1)1+1+1+1+1+1+1 
2)1+1+1+1+1+2 
3)1+1+1+2+2 
4)1+1+1+4 
5)1+2+2+2 
6)1+2+4
因此,正整数7符合条件的表达式个数是6. 编写一个程序,对于给定的正整数N(1 <= N <= 1,000),输出符合条件的表达式个数。要求:时间复杂度不高于O(N)。

输入描述: 一个整数(>=1并且<=1000)输入样例: 7 输出描述: 表达式个数输出样例 6
3.
攻击识别
问题详情

小明的服务器遭到了黑客的攻击,他想了一个简易的办法来判断服务器收到的数据包是否是来自黑客的攻击。

 

小明假设黑客的攻击都是往一些模式串里插入一个片段伪装出来的,例如模式串M为AN--ATTACK,那么黑客可能往M里插入一段信息,如在AN-后插入hello,来得到伪装后的数据包,AN-hello-ATTACK。小明想出了一系列的模式串Mi,你能否帮助小明判断服务器收到的数据包是否可能由某个模式串伪装而成。

 

示例,给定两个模式串M1=abc,M2=abd,那么数据包abec可能是攻击(模式M1),但数据包xyz则不属于M1、M2里面任何一个类型的攻击。

 

 


输入描述: 输入的第一行一个正整数n(1 ≤ n ≤ 100000),表示n种攻击模式。

接下来n行,其中第i行一个字符串Mi(1 ≤ strlen(Mi) ≤ 50),表示第i种攻击模式。

在接下来一个正整数k,表示有k(1 ≤ k ≤ 100)个数据包。

接下来k行,其中第i行一个字符串Di(1 ≤ strlen(Di) ≤ 1000),表示第i个数据包。

有50%的输入数据满足:1 ≤ n ≤ 10输入样例: 3 abc abd xyz 6 abacac affffbd xxxxxxyyyyz aaabbbbcccc ifqwefxxf xayaz 输出描述: 输入k行,每行输出“YES”或者“NO”(全部大写)。

其中第i行表示第i个数据包有没有可能是攻击。输出样例 YES YES YES NO NO NO