baidu武大笔试软件工程师题目_软件工程师笔试题目
baidu武大笔试软件工程师题目由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程师笔试题目”。
第一题是给两个串a和b,判断a中的字符是否在b中出现,a和b中都有可能出现汉字,汉字按gbk编码,占两个字节,第一个字节的最高位为
1第二题是有s={a,b,c,d...z,aa,ab...az,...zz,aaa,aab...} 给定一个串seq=[a...z]+,判断seq是s的第几个字符串
第三题是有一个搜索引擎,用户可以对搜索结果进行评分,设计一个评分判定系统,防止恶意评分
一、编程题(30分)
判断字符串b的所有字符是否都在字符串a中出现过,a, b都是可能包括汉字的字符串,b中重复出现的汉字,那么a中也要至少重复相同的次数。
汉字使用gbk编码(简单的说,用两个字节表示一个汉字,高字节最高位为1的代表汉字,低字节最高位可以不为1)。
int is_include(char *a, char *b);
返回0表示没有都出现过,返回1表示都出现过。请给出所给算法的复杂度分析,尤其是字符串长度不同的情况下的复杂度分析。
二、算法题(35分)
序列Seq=[a,b,…z,aa,ab…az,ba,bb,…bz,…,za,zb,…zz,aaa,…] 类似与excel的排列,任意给出一个字符串s=[a-z]+(由a-z字符组成的任意长度字符串),请问s是序列Seq的第几个。
三、系统设计题(35分)
需求:需要引入用户对搜索结果相关性的评分100分制,希望用户的打分能帮助搜索引擎排序,但又要避免恶意投票,作弊等,请设计一个比较公平的评分系统。
第一题 26进制转10进制 第二题字符建一个26大小的表,汉字建一个256*256大小的表 两个都是使用字符值作为下表偏移 第三题开放题 随便搞