百度质量部一面
3月11日,下午一点半,天晴,微风,我怀着一颗紧张、激动的心情走进奎科大厦,参加百度的面试,职位手机产品QA。
面试中杂七杂八的就不谈了,程序题一共问了我两道,答得都不是很理想,现在回想起来感觉有点胡说八道的感觉。。。回到家整理了一下思路,把其中的一道题又考虑了一下,发现挺简单的,就在计算机上实际操作了一下,也算是对自己的一种锻炼吧。
问题
一个文本文件,内容如下:
http://www.baidu.com/s?ie=UTF-8&wd=rstrip 20
http://www.pythondoc.com/pythontutorial3/inputoutput.html 20
http://www.baidu.com/ 30
。。。也就是以
网址 出现次数
的格式罗列在文本中,问题是统计出主域名的个数,比如上面三行字符串中http://www.baidu.com/的个数为50,http://www.pythondoc.com/的个数为20。
思路
- 准备一个字典存放结果
- 提取每一行主域名和个数
- 判断主域名是否在字典中,在,则累加个数;不在,则将主域名加入字典
解答
import re
#事前准备
#打开指定文本文件
#新建字典存放处理后的数据
infile=open('D:/baidu.txt','r')
dict1={}
for i in infile:
#正则表达式匹配主域名
list_url=re.findall(r'^http\:\/\/w{3}\.\S{1,}\..*?\/',i)
url=list_url[0]
#提取网址和相应个数
tmp=i.split()
#判断
if url in dict1.keys():
dict1[url]=str(int(dict1[url])+int(tmp[1]))
else:
dict1[url]=tmp[1]
#打印结果
for key in dict1.keys():
print 'The number of %s is %s.' %(key,dict1[key])
结束
最后,吐槽一下,百度的前台态度真心不好,赶紧换了吧~面试官的态度非常不错,只是自己表现太糟了。。。