面試總結(jié)
從上個星期六開始投簡歷到現(xiàn)在,在獵聘、拉勾、智聯(lián)上陸陸續(xù)續(xù)投了幾十份簡歷了,邀請面試的有三家,一家是游戲公司,軟件園那邊的,規(guī)模比較大,公司氣氛看起來也挺不錯,一家是做安防產(chǎn)品的半硬件公司,在靠近郫縣的電子科大科技園,人不多,公司氛圍比較嚴(yán)肅的感覺,但是個個看起來都很supercoder的感覺,最后一家名字叫愛讀書,我以為是iReader這個耳熟能詳?shù)墓?,結(jié)果是一個連官網(wǎng)都木有的不造是啥的小公司,所以沒去。
先來說第一家:成都軟件園某某游戲公司
進去之后前臺小妹來了個常規(guī)一條龍服務(wù),給張表填填,倒口水喝喝,給你拉拉家常之類的,完事之后馬上進入正題,拿了一張筆試試卷來給我做,時間限制好像沒有規(guī)定,而且周圍沒有人守著你做,也就是說你可以悄悄拿出你的手機google一下,但是考慮到他們會不會在監(jiān)控里偷偷看著你,也就沒有實施這個想法。
來說說試卷上的題,共三道:
1‘、有一個vector
實現(xiàn)版本1:
void?furitCount(const?&vectorfruits){ ???????int?applenum,orrangenum,banananum; ???????applenum=orrangenum=banananum=0; ???????vector::iterator?it; ???????for(it=fruits.begin(),it!=fruit().end(),it++){ ????????????????????if(?(*it).compare("apple") ?????????????????????????applenum++; ????????????????????else?if(?(*it).compare("prrange")?) ??????????????????????????orrangenum++; ?????????????????????else?if(?(*it).compare("banana")?) ??????????????????????????banananum++; ?????????????????????else ??cout<<"error"<<endl; ???????} cout<<"applenum:?"<<applenum<<endl; cout<<"orrangenum:?"<<orrangenum<<endl; cout<<"banananum:?"<<banananum<<endl; }
????但是感覺這個版本的實現(xiàn)太過平庸,沒有體現(xiàn)任何技巧,于是實現(xiàn)版本2
實現(xiàn)版本2:
void?furitCount(const?&vectorfruits){ ???????int?applenum,orrangenum,banananum; ???????applenum=orrangenum=banananum=0; ???????applenum=count(fruits.begin(),fruits.end(),"apple"); ???????orrangenum=count(fruits.begin(),fruits.end(),"orrange"); ???????banananum=count(fruits.begin(),fruits.end(),"banana"); }
這個版本感覺使用了一點點stl中自帶算法的,看起來更簡潔更高大上,但是要遍歷三次才能統(tǒng)計完,性能太差。
各位看管能否給出你們的實現(xiàn)代碼呢?我覺得面試官應(yīng)該像看到的不是我上述兩個代碼吧?他應(yīng)該想看到更多的技巧?。?!
? ? 2、_int8 data 是一個8位的有符號整數(shù),請將上面得到的各種水果的總數(shù)用data存儲,寫出存儲過程和解析過程
? ? 實現(xiàn)代碼:
? ? 存儲過程:
data=applenum; ????????data<<2; data+=orrangenum; data<<2; data+=banananum;
? ? 解析過程:
? ?
banananum=data&3; data>>2; orrangenum=data&3; data>>2; applenum=data&3;
存在問題:
每個水果的數(shù)量分配兩個位只能表示最多到3,分配3個又不夠,大家有更好更高效的存儲方法么?
? ? 第三題有點記不住了,也沒多大價值,先請各位看官看看上面兩個題吧,怎么寫才是最好的答案?