免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xinxin12375
打印 上一主题 下一主题

昨天去腾讯现场招聘会,一上来就被问闷了。 [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
51 [报告]
发表于 2009-03-02 10:14 |只看该作者
这个应该是shell的基础了。
所以在吹简历的时候虽然不能不吹,但要做到心中有数,自己能摆的平,呵呵
本人毕业不到一年,在Linux下也没什么经验,以前在学校基本上没接触过linux,不过以后想在linux下发展,于是就去应聘Linux下的搜索工程师,简历上写了熟悉shell编程(呵呵,其实只是勉强知道一些),结果面试官一上来就出了一个题,大致是这样的:有一个文件是QQ号到手机号的绑定关系,一行一个关系,格式如下:11235334:13443253456。然后统计出每个QQ绑定了几个手机,输出到一个文件里。格式如下
:[11235334]
13454543454
13643543544
[23432423]
13654645542

结果一下子就闷了,后来的问题也就没什么意义了,真是失败,看来现在要恶补了,哪位哥们帮忙解答一下上面的问题,随便给点意见,我选择Linux是不是一个错误???

  1. awk 'BEGIN{FS="[ \t]*:[ \t]*";}NF==2{a[$1]=sprintf("%s\n%s",a[$1],$2)}END{for (i in a) {printf(":[%d]%s\n",i,a[i]);} }' $f1 >$f2
复制代码

[ 本帖最后由 cjaizss 于 2009-3-2 11:21 编辑 ]

论坛徽章:
0
52 [报告]
发表于 2009-03-02 10:24 |只看该作者
原帖由 liaosnet 于 2009-3-2 09:53 发表
额..这时候使用 awk 'NF=NF' 就不会有问题了...$1=$1显然会有副作用...


NF=NF也不好,考虑有空行的环境,空行会被移去

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
53 [报告]
发表于 2009-03-02 11:20 |只看该作者
原帖由 justlooks 于 2009-3-2 10:24 发表


NF=NF也不好,考虑有空行的环境,空行会被移去


NF+=1

论坛徽章:
0
54 [报告]
发表于 2009-03-02 11:34 |只看该作者

自己想的笨方法

perl -e 'while(<>){chomp;if (/\[(\d+)\]/){print "\n$1\t"}else{print "$_\t"}}'  1.txt  |awk 'NR>1{a[$1]=NF-1}END{for(i in a){print i,a}}'

论坛徽章:
0
55 [报告]
发表于 2009-03-02 11:50 |只看该作者
楼主运气真好,其实这个就是和腾讯的架构有点关系,手机登陆,用文件进行存储

论坛徽章:
0
56 [报告]
发表于 2009-03-02 12:49 |只看该作者
呵呵,这个问题很实际。

论坛徽章:
13
CU大牛徽章
日期:2013-04-17 11:20:3615-16赛季CBA联赛之吉林
日期:2017-05-25 16:45:4715-16赛季CBA联赛之福建
日期:2017-03-13 11:33:442017金鸡报晓
日期:2017-02-08 10:39:422017金鸡报晓
日期:2017-01-10 15:13:29IT运维版块每日发帖之星
日期:2016-03-15 06:20:01IT运维版块每日发帖之星
日期:2015-10-02 06:20:00CU十二周年纪念徽章
日期:2013-10-24 15:41:34CU大牛徽章
日期:2013-09-18 15:15:45CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-04-17 11:46:39CU大牛徽章
日期:2013-04-17 11:46:28
57 [报告]
发表于 2009-03-02 14:07 |只看该作者
前面可能大家都先假设了给出的数据是已经排序过多,我想这个假设可能是不成立的吧。
其实我觉得楼主的题目叙述是不清楚的,有比较多的歧义。

[ 本帖最后由 xdsnet 于 2009-3-2 14:12 编辑 ]

论坛徽章:
0
58 [报告]
发表于 2009-03-02 14:11 |只看该作者
原帖由 xinxin12375 于 2009-3-1 20:26 发表
本人毕业不到一年,在Linux下也没什么经验,以前在学校基本上没接触过linux,不过以后想在linux下发展,于是就去应聘Linux下的搜索工程师,简历上写了熟悉shell编程(呵呵,其实只是勉强知道一些),结果面试官一 ...


那天我也去了,你是在深圳还是在北京?

他明确的说了让你用shell命令来实现了吗?如果没有的话,我觉得他在问算法!!

我那天没碰到这个问题,如果问我,我会说用 trie tree 来进行关键字统计,并其在节点上加链表,统计完了以后再对树进行遍历。

还有面试官有没有说原数据有多少个,内存限制多少M啊?

我碰到的问题是,1000万个整数里面快速找出前50个最大的数,大家说说该怎么做?

论坛徽章:
0
59 [报告]
发表于 2009-03-02 14:17 |只看该作者

回复 #58 zhangjiakouzf 的帖子

这个用shell来做吗?
建个数据库,把数据导进表,再建个索引,一个语句就OK了。

论坛徽章:
0
60 [报告]
发表于 2009-03-02 14:30 |只看该作者
这玩意用shell 作没啥效率,用perl的hash表还可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP