周一美团笔试,踌躇满志的去了,可是看到卷子,顿时感觉智商不够用了。
投的系统运维工程师,考前看了某公司的运维笔试题,一大堆awk,sed的题目,搞的我好郁闷,虽然平时也用,却都是临时百度,没系统学过。但是,比起美团的来说,这些还不算什么。拿到美团的卷子,整个技术类的用同一张卷子,前面的题都一样,后面各个职位选做题一道。看了下,也就前端那道选做题看着亲切,可是我应聘的是运维。
前面先来几道智力题,第一个,过桥问题,4个人在漆黑的夜里过一座桥,每次只能两个人,而且必须带手电筒,4个人分别需要 1、2、5、10分钟,问最短多久过河。
第一感觉就是每次折回来的应该是用时最短的,于是我让用时1分钟的同学依次带其他人过河,这样,19分钟。
正确的答案是17分钟,我的小伙伴们很多都做出来了,我需要去提高智商么?
1、2先过,1折回 3分钟
5、10过,2折回 12分钟
1、2过 , 完成 2分钟
总计17分钟
第二个,赛马问题,25匹马,只能5匹一组比赛,问最少几次可以找出跑的最快的3匹马。我用了笨方法,5匹一组取前3,于是11次,又错了。正确的如下:
将25匹马分为5组,编号如下:
A1,A2,A3,A4,A5
B1,B2,B3,B4,B5
C1,C2,C3,C4,C5
D1,D2,D3,D4,D5
E1,E2,E3,E4,E5
且设编号顺序即为各组名次。
第一轮5次,取每组第一,即A1,B1,C1,D1,E1.
第二轮1次,从小组第一种在取前三。为讨论方便,假设为A1,B1,C1.
则此时,A1是绝对第一
D,E两组的第一都没能进入前三,那么DE两组直接全部淘汰
C1只是第三名,那么C1以后不可能进前三,淘汰之。
B1是第二名,那么B2顶多拿第三,B2以后没有竞争力,淘汰
A1是第一名,那么A2,A3有可能是第二,第三,后面的淘汰
剩下有竞争力的为A2,A3,B1,B2,C1
在比赛一次取前2名即可
总共赛7次
第三题,买票找零问题,有2N个人买票,其中有N个人有5元零钱,其他N个人只有10元的钱;假设每人只买一张票。问任何人都不必为找零而等待的概率是多少?
百度一下发现是编程之美上的题,这里直接给个链接吧,感觉好难的样子。http://www.cnblogs.com/wuyuegb2312/p/3016878.html
第四题,编写一段程序测试函数int f(int n)是否总是返回0。只能想到都试一遍了:
/* * File: main.cpp * Author: annhe * * Created on 201年月日, : */ #include <cstdlib> #include <iostream> #include <limits> using namespace std; int f(int n) { return 0; } int main(int argc, char* argv[]) { int max=std::numeric_limits<int>::max(); int min=std::numeric_limits<int>::min(); //cout<<min<<" "<<max<<endl; for(int i=min;i<max;i++) { if(f(i)!=0) { cout<<"no"<<endl; return 1; } } cout<<"yes"<<endl; return 0; }
第五题,用两个栈模拟队列,先放弃了。
第六题,获取两段字符串的最长公共子串的长度,我的做法:
#include <iostream> using namespace std; int getSubstringLen(string s1,string s2) { string longstr=s1,shortstr=s1; s1.length()>s2.length()?shortstr=s2:longstr=s2; for(unsigned int len=shortstr.length();len>=0;len--) for(unsigned int j=0;j<shortstr.length()-len+1;j++) { if(longstr.find(shortstr.substr(j,len),0)!=string::npos) { cout<<shortstr.substr(j,len)<<" "; return len; } } return 0; } int main(int argc, char* argv[]) { cout<<getSubstringLen("GCCCTAGCCAGDE","GCGCCAGTGDE"); return 0; }
运行一下:
NPP_EXEC: "GCC_Run" substr.exe Process started >>> GCCAG 5<<< Process finished. (Exit code 0)
恩,结果是对的,但貌似不是出题的人想要的,小伙伴们用了动态规划。还有,考场上没手册查,find()函数被想当然的写成了findstr(),还没index的,返回值也没有string::npos,囧...
剩下的是选做题,ios,android都不会,前端看起来很简单。运维考的居然是子网掩码,对不起简历上写的网络工程师证书啊,差点子网都不会算了。运维不考linux,难道美团的运维是基础设施运维?
头一次笔试就这么铩羽而归了,挺打击人的,美团这样的都过不了,接下来的百度网易不好搞啊。
Pingback: 我的大四(上)——考研与找工作 | 知行近思