第一篇:2012年最新C和C++程序員筆試題
以下是整理自8月下旬至10月份內(nèi)的各大公司的筆試面試三十題(注:所有題目基本上全部為軟件開(kāi)發(fā)方向,題目來(lái)源:網(wǎng)絡(luò)收集),相信一定能給正在參加各種校招的諸多朋友多少幫助,學(xué)習(xí)參考或借鑒
九月十月百度人搜,阿里巴巴,騰訊華為小米搜狗筆/面試五十題
9月11日,京東:
談?wù)勀銓?duì)面向?qū)ο缶幊痰恼J(rèn)識(shí)
? 8月20日,金山面試,題目如下:
數(shù)據(jù)庫(kù)1中存放著a類(lèi)數(shù)據(jù),數(shù)據(jù)庫(kù)2中存放著以天為單位劃分的表30張(比如table_20110909,table_20110910,table_20110911),總共是一個(gè)月的數(shù)據(jù)。表1中的a類(lèi)數(shù)據(jù)中有一個(gè)字段userid來(lái)唯一判別用戶身份,表2中的30張表(每張表結(jié)構(gòu)相同)也有一個(gè)字段userid來(lái)唯一識(shí)別用戶身份。如何判定a類(lèi)數(shù)據(jù)庫(kù)的多少用戶在數(shù)據(jù)庫(kù)2中出現(xiàn)過(guò)? 百度實(shí)習(xí)筆試題(2012.5.6)
簡(jiǎn)答題1
一個(gè)單詞單詞字母交換,可得另一個(gè)單詞,如army->mary,成為兄弟單詞。提供一個(gè)單詞,在字典中找到它的兄弟。描述數(shù)據(jù)結(jié)構(gòu)和查詢過(guò)程。評(píng)點(diǎn):同去年9月份的一道題,見(jiàn)此文第3題:簡(jiǎn)答題2 線程和進(jìn)程區(qū)別和聯(lián)系。什么是“線程安全”
簡(jiǎn)答題3
C和C++怎樣分配和釋放內(nèi)存,區(qū)別是什么
算法題1
一個(gè)url指向的頁(yè)面里面有另一個(gè)url,最終有一個(gè)url指向之前出現(xiàn)過(guò)的url或空,這兩種情形都定義為null。這樣構(gòu)成一個(gè)單鏈表。給兩條這樣單鏈表,判斷里面是否存在同樣的url。url以億級(jí)計(jì),資源不足以hash。
算法題2
數(shù)組al[0,mid-1] 和 al[mid,num-1],都分別有序。將其merge成有序數(shù)組al[0,num-1],要求空間復(fù)雜度O(1)系統(tǒng)設(shè)計(jì)題
百度搜索框的suggestion,比如輸入北京,搜索框下面會(huì)以北京為前綴,展示“北京愛(ài)情故事”、“北京公交”、“北京醫(yī)院”等等搜索詞。
如何設(shè)計(jì)使得空間和時(shí)間復(fù)雜度盡量低。評(píng)點(diǎn):老題,直接上Trie樹(shù)+Hash,Trie樹(shù)的介紹見(jiàn):從Trie樹(shù)(字典樹(shù))談到后綴樹(shù)。
? ? 人搜筆試
1.快排每次以第一個(gè)作為主元,問(wèn)時(shí)間復(fù)雜度是多少?(O(N*logN))
2.T(N)= N + T(N/2)+T(2N), 問(wèn)T(N)的時(shí)間復(fù)雜度是多少? 點(diǎn)評(píng):O(N*logN)or O(N)? 3.從(0,1)中平均隨機(jī)出幾次才能使得和超過(guò)1?(e)4.編程題:
一棵樹(shù)的節(jié)點(diǎn)定義格式如下: struct Node{ Node* parent;Node* firstChild;// 孩子節(jié)點(diǎn) Node* sibling;// 兄弟節(jié)點(diǎn) } 要求非遞歸遍歷該樹(shù)。
思路:采用隊(duì)列存儲(chǔ),來(lái)遍歷節(jié)點(diǎn)。5.算法題:
有N個(gè)節(jié)點(diǎn),每?jī)蓚€(gè)節(jié)點(diǎn)相鄰,每個(gè)節(jié)點(diǎn)只與2個(gè)節(jié)點(diǎn)相鄰,因此,N個(gè)頂點(diǎn)有N-1條邊。每一條邊上都有權(quán)值wi,定義節(jié)點(diǎn)i到節(jié)點(diǎn)i+1的邊為wi。求:不相鄰的權(quán)值和最大的邊的集合。? 人搜面試,所投職位:搜索研發(fā)工程師:面試題回憶
1、刪除字符串開(kāi)始及末尾的空白符,并且把數(shù)組中間的多個(gè)空格(如果有)符轉(zhuǎn)化為1個(gè)。
2、求數(shù)組(元素可為正數(shù)、負(fù)數(shù)、0)的最大子序列和。
3、鏈表相鄰元素翻轉(zhuǎn),如a->b->c->d->e->f-g,翻轉(zhuǎn)后變?yōu)椋篵->a->d->c->f->e->g
4、鏈表克隆。鏈表的結(jié)構(gòu)為: typedef struct list { int data;//數(shù)據(jù)字段
list *middle;//指向鏈表中某任意位置元素(可指向自己)的指針 list *next;//指向鏈表下一元素 } list;5、100萬(wàn)條數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢速度優(yōu)化問(wèn)題,解決關(guān)鍵點(diǎn)是:根據(jù)主表元素特點(diǎn),把主表拆分并新建副表,并且利用存儲(chǔ)過(guò)程保證主副表的數(shù)據(jù)一致性。(不用寫(xiě)代碼)
6、求正整數(shù)n所有可能的和式的組合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2)。?
7、求旋轉(zhuǎn)數(shù)組的最小元素(把一個(gè)數(shù)組最開(kāi)始的若干個(gè)元素搬到數(shù)組的末尾,我們稱(chēng)之為數(shù)組的旋轉(zhuǎn)。輸入一個(gè)排好序的數(shù)組的一個(gè)旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。例如數(shù)組{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個(gè)旋轉(zhuǎn),該數(shù)組的最小值為1)
8、找出兩個(gè)單鏈表里交叉的第一個(gè)元素
9、字符串移動(dòng)(字符串為*號(hào)和26個(gè)字母的任意組合,把*號(hào)都移動(dòng)到最左側(cè),把字母移到最右側(cè)并保持相對(duì)順序不變),要求時(shí)間和空間復(fù)雜度最小
10、時(shí)間復(fù)雜度為O(1),怎么找出一個(gè)棧里的最大元素
11、線程、進(jìn)程區(qū)別
12、static在C和C++里各代表什么含義
13、const在C/C++里什么意思
14、常用linux命令
15、解釋Select/Poll模型 ? 網(wǎng)易有道二面:
判斷一個(gè)數(shù)字序列是BST后序遍歷的結(jié)果,現(xiàn)場(chǎng)寫(xiě)代碼。
? 8月30日,網(wǎng)易有道面試題
var tt = 'aa';function test(){ alert(tt);var tt = 'dd';alert(tt);} test();? ? 8月31日,百度面試題:不使用隨機(jī)數(shù)的洗牌算法,9月6日,阿里筆試題:平面上有很多點(diǎn),點(diǎn)與點(diǎn)之間有可能有連線,求這個(gè)圖里環(huán)的數(shù)目。
?? 9月7日,一道華為上機(jī)題:
題目描述: 選秀節(jié)目打分,分為專(zhuān)家評(píng)委和大眾評(píng)委,score[] 數(shù)組里面存儲(chǔ)每個(gè)評(píng)委打的分?jǐn)?shù),judge_type[] 里存儲(chǔ)與 score[] 數(shù)組對(duì)應(yīng)的評(píng)委類(lèi)別,judge_type == 1,表示專(zhuān)家評(píng)委,judge_type == 2,表示大眾評(píng)委,n表示評(píng)委總數(shù)。打分規(guī)則如下:專(zhuān)家評(píng)委和大眾評(píng)委的分?jǐn)?shù)先分別取一個(gè)平均分(平均分取整),然后,總分 = 專(zhuān)家評(píng)委平均分 * 0.6 + 大眾評(píng)委 * 0.4,總分取整。如果沒(méi)有大眾評(píng)委,則 總分 = 專(zhuān)家評(píng)委平均分,總分取整。函數(shù)最終返回選手得分。
函數(shù)接口 int cal_score(int score[], int judge_type[], int n)
上機(jī)題目需要將函數(shù)驗(yàn)證,但是題目中默認(rèn)專(zhuān)家評(píng)委的個(gè)數(shù)不能為零,但是如何將這種專(zhuān)家數(shù)目為0的情形排除出去。
9月8日,騰訊面試題:
假設(shè)兩個(gè)字符串中所含有的字符和個(gè)數(shù)都相同我們就叫這兩個(gè)字符串匹配,比如:abcda和adabc,由于出現(xiàn)的字符個(gè)數(shù)都是相同,只是順序不同,所以這兩個(gè)字符串是匹配的。要求高效!
又是跟上述第3題中簡(jiǎn)單題一的兄弟節(jié)點(diǎn)類(lèi)似的一道題,我想,你們能想到的,?? 阿里云,搜索引擎中5億個(gè)url怎么高效存儲(chǔ);
?? 一道C++筆試題,求矩形交集的面積:
在一個(gè)平面坐標(biāo)系上,有兩個(gè)矩形,它們的邊分別平行于X和Y軸。
其中,矩形A已知,ax1(左邊), ax2(右邊), ay1(top的縱坐標(biāo)), ay2(bottom縱坐標(biāo)).矩形B,類(lèi)似,就是 bx1, bx2, by1, by2。這些值都是整數(shù)就OK了。要求是,如果矩形沒(méi)有交集,返回-1,有交集,返回交集的面積。int area(rect const& a, rect const& b){...} 點(diǎn)評(píng): healer_kx:
補(bǔ)齊代碼,最好是簡(jiǎn)潔的,別用庫(kù)。你可以寫(xiě)你的輔助函數(shù),宏定義,代碼風(fēng)格也很重要。ri_aje:struct rect ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? {
// axis alignment assumed // bottom left is(x[0],y[0]), top right is(x[1],y[1])double x [2];double y [2];};
template
// return type changed to handle non-integer rects double area(rect const& a, rect const& b){
// perfectly adjacent rects are considered having an intersection of 0 area double const dx = min(a.x[1],b.x[1])max(a.y[0],b.y[0]);return dx>=0&&dy>=0 ? dx*dy :-1;?? } ?? 下面是一個(gè)簡(jiǎn)短的證明。
對(duì)于平行于坐標(biāo)軸的矩形 r,假設(shè)其左下角點(diǎn)坐標(biāo)為(rx0,ry0),右上角點(diǎn)坐標(biāo)為(rx1,ry1),那么由 r 定義的無(wú)限有界點(diǎn)集為:{(x,y)|x in [rx0,rx1] && y in [ry0,ry1]}。
根據(jù)交集的定義,則任意二維點(diǎn)(x,y)在矩形 a,b 的交集內(nèi)等價(jià)于 {(x,y)|(x,y)in a 并且(x,y)in b} <==>
{(x,y)|x in [ax0,ax1] && x in [bx0,bx1] 并且 y in [ay0,ay1] && y in [by0,by1]} <==> {(x,y)|x in [max(ax0,bx0),min(ax1,bx1)] 并且 y in [max(ay0,by0),min(ay1,by1)]}
因此,交集矩形的邊長(zhǎng)分別為 min(ax1,bx1)-max(ax0,bx0)和 min(ay1,by1)-max(ay0,by0)。注意當(dāng)交集為空時(shí)(a,b 不相交),則經(jīng)此法計(jì)算出來(lái)的交集邊長(zhǎng)為負(fù)值,此事實(shí)可用于驗(yàn)證 a,b 的相交性。
鑒于笛卡爾積各個(gè)維度上的不相關(guān)性,此方法可擴(kuò)展到任意有限維線性空間,比如,三維空間中平行于坐標(biāo)軸的長(zhǎng)方體的交集體積可以用類(lèi)似的方法計(jì)算。
?? 2012年創(chuàng)新工場(chǎng)校園招聘最后一道筆試題:工場(chǎng)很忙
創(chuàng)新工場(chǎng)每年會(huì)組織同學(xué)與項(xiàng)目的雙選會(huì),假設(shè)現(xiàn)在有M個(gè)項(xiàng)目,編號(hào)從1到M,另有N名同學(xué),編號(hào)從1到N,每名同學(xué)能選擇最多三個(gè)、最少一個(gè)感興趣的項(xiàng)目。選定之后,HR會(huì)安排項(xiàng)目負(fù)責(zé)人和相應(yīng)感興趣的同學(xué)一對(duì)一面談,每次面談持續(xù)半小時(shí)。由于大家平時(shí)都很忙,所以咱們要盡量節(jié)約時(shí)間,請(qǐng)你按照以下的條件設(shè)計(jì)算法,幫助HR安排面試。
1)同學(xué)很忙。項(xiàng)目負(fù)責(zé)人一次只能與一名同學(xué)面談,而同學(xué)會(huì)在自己第一個(gè)面試開(kāi)始時(shí)達(dá)到工場(chǎng),最后一個(gè)面試結(jié)束后離開(kāi)工場(chǎng),如果參加一個(gè)項(xiàng)目組的面試后不能立即參加下一個(gè)項(xiàng)目組的面試,就必須在工場(chǎng)等待。所以請(qǐng)盡可能讓同學(xué)的面試集中在某一時(shí)間段,減少同學(xué)在工場(chǎng)等待的時(shí)間。
2)項(xiàng)目負(fù)責(zé)人很忙。眾所周知,創(chuàng)業(yè)團(tuán)隊(duì)的負(fù)責(zé)人會(huì)有很多事情要做,所以他們希望能夠?qū)⒆约簠⑴c的面試集中在某一段時(shí)間內(nèi),請(qǐng)?jiān)诒WC1)的情況下,使得項(xiàng)目負(fù)責(zé)人等待的時(shí)間最少。
3)HR很忙。從第一輪面試開(kāi)始以后,所有HR都必須等到最后一輪面試結(jié)束,所以需要在保證1)和2)的同時(shí),也能盡快解放掉所有的HR,即讓第一輪面試到最后一輪面試之間持續(xù)的時(shí)間最短。
輸入(以文件方式輸入,文件名為iw,例如iw.in):
第1行...第n行:同學(xué)的編號(hào) 項(xiàng)目的編號(hào)
樣例(數(shù)據(jù)間用空格隔開(kāi),兩個(gè)0表示輸入結(jié)束):
112
0 0
表示M=3,N=3,編號(hào)為1的同學(xué)選擇了項(xiàng)目1,2和3,編號(hào)為2的同學(xué)選擇了項(xiàng)目1,編號(hào)為3的同學(xué)選了項(xiàng)目1和2
輸出(以文件方式輸出,文件名為iw,例如iw.out):
第1行:編號(hào)為1的項(xiàng)目依次面試新同學(xué)的編號(hào)序列
第2行:編號(hào)為2的項(xiàng)目依次面試新同學(xué)的編號(hào)序列...第n行:編號(hào)為n的項(xiàng)目依次面試新同學(xué)的編號(hào)序列
樣例(數(shù)據(jù)間用空格隔開(kāi),0表示沒(méi)有面試):3 21 0 0 0 1
表示編號(hào)為1的項(xiàng)目在第一輪面試編號(hào)為1的同學(xué),第二輪面試編號(hào)為3的同學(xué),第三輪面試編號(hào)為2的同學(xué)
編號(hào)為2的項(xiàng)目在第一輪面試編號(hào)為3的同學(xué),第二輪面試編號(hào)為1的同學(xué),第二輪不用面試
編號(hào)為3的項(xiàng)目在第一輪和第二輪都不用面試,第三輪面試編號(hào)為1的同學(xué)
4**9 的筆試題,比較簡(jiǎn)單: 1.求鏈表的倒數(shù)第二個(gè)節(jié)點(diǎn)
2.有一個(gè)整數(shù)數(shù)組,求數(shù)組中第二大的數(shù) 阿里巴巴二道題 第一道:
對(duì)于給定的整數(shù)集合S,求出最大的d,使得a+b+c=d。a,b,c,d互不相同,且都屬于S。集合的元素個(gè)數(shù)小于等于2000個(gè),元素的取值范圍在[-2^28,2^281)^2)。最后我給出了一個(gè)巧妙的證明。然后發(fā)現(xiàn)如果是m*n的矩陣也是類(lèi)似的答案,不局限于方陣。此外,題目具體描述可以看看這里:
?? 9月27日,小米兩面:
一面:
除了聊研究,就一道題
數(shù)組里找到和最接近于0的兩個(gè)值。二面:
行列有序的矩陣查找一個(gè)數(shù)
直方圖最大矩形。點(diǎn)評(píng):這里有此題的具體表述及一份答案: 3 next_permutation 字符串匹配 含有* ?(寫(xiě)代碼)
實(shí)現(xiàn)strcpy memmove(必須寫(xiě)代碼)//void * memmove(void * destination, const void * source, size_t num);)?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? //是
//最簡(jiǎn)單的方法是直接復(fù)制,但是由于它們可能存在內(nèi)存的重疊區(qū),因此可能覆蓋了原有數(shù)據(jù)。//比如當(dāng)source+count>=dest&&source //解決辦法是從后往前拷貝。//對(duì)于其它情況,則從前往后拷貝。 void* memmove(void* dest, void* source, size_t count){ void* ret = dest; if(dest <= source || dest >=(source + count)){ //正向拷貝 //copy from lower addresses to higher addresses while(count--)*dest++ = *source++;} else { //反向拷貝 //copy from higher addresses to lower addresses dest += count1;?? ?? ?? ?? ?? while(count--)*dest--= *source--;} return ret;} ?? 6 讀數(shù)(千萬(wàn)億,百萬(wàn)億??)變?yōu)閿?shù)字(說(shuō)思路即可,字符串查找,填寫(xiě)各個(gè)權(quán)值的字段,然后判斷是否合法,讀前面那些×權(quán)值,累加)。?? 9月27日,Hulu 2013北京地區(qū)校招筆試題 填空題: 1、中序遍歷二叉樹(shù),結(jié)果為ABCDEFGH,后序遍歷結(jié)果為ABEDCHGF,那么前序遍歷結(jié)果為? 2、對(duì)字符串HELL0_HULU中的字符進(jìn)行二進(jìn)制編碼,使得字符串的編碼長(zhǎng)度盡可能短,最短長(zhǎng)度為? 3、對(duì)長(zhǎng)度12的有序數(shù)組進(jìn)行二分查找,目標(biāo)等概率出現(xiàn)在數(shù)組的每個(gè)位置上,則平均比較次數(shù)為? 4、一副撲克(去王),每個(gè)人隨機(jī)的摸兩張,則至少需要多少人摸牌,才能保證有兩個(gè)人抽到同樣的花色。 5、x個(gè)小球中有唯一一個(gè)球較輕,用天平秤最少稱(chēng)量y次能找出這個(gè)較輕的球,寫(xiě)出y和x的函數(shù)表達(dá)式y(tǒng)=f(x)6、3的方冪及不相等的3的方冪的和排列成遞增序列1,3,4,9,10,12,13??,寫(xiě)出數(shù)列第300項(xiàng) 7、無(wú)向圖G有20條邊,有4個(gè)度為4的頂點(diǎn),6個(gè)度為3的頂點(diǎn),其余頂點(diǎn)度小于3,則G有多少個(gè)頂點(diǎn) 8、桶中有M個(gè)白球,小明每分鐘從桶中隨機(jī)取出一個(gè)球,涂成紅色(無(wú)論白或紅都涂紅)再放回,問(wèn)小明將桶中球全部涂紅的期望時(shí)間是? 9、煤礦有3000噸煤要拿到市場(chǎng)上賣(mài),有一輛火車(chē)可以用來(lái)運(yùn)煤,火車(chē)最多能裝1000噸煤,且火車(chē)本身需要燒煤做動(dòng)力,每走1公里消耗1噸煤,如何運(yùn)煤才能使得運(yùn)到市場(chǎng)的煤最多,最多是多少? 10、1,2,3,4?..n,n個(gè)數(shù)進(jìn)棧,有多少種出棧順序,寫(xiě)出遞推公式(寫(xiě)出通項(xiàng)公式不得分) 11、宇宙飛船有100,000位的存儲(chǔ)空間,其中有一位有故障,現(xiàn)有一種Agent可以用來(lái)檢測(cè)故障,每個(gè)Agent可以同時(shí)測(cè)試任意個(gè)位數(shù),若都沒(méi)有故障,則返回OK,若有一位有故障,則失去響應(yīng)。如果有無(wú)限多個(gè)Agent可供使用,每個(gè)Agent進(jìn)行一次檢測(cè)需要耗費(fèi)1小時(shí),現(xiàn)在有2個(gè)小時(shí)時(shí)間去找出故障位,問(wèn)最少使用多少個(gè)Agent就能找出故障。 (總共12道填空題,還有一道太復(fù)雜,題目很長(zhǎng),還有示意圖,這里沒(méi)有記錄下來(lái))大題: 1、n個(gè)數(shù),找出其中最小的k個(gè)數(shù),寫(xiě)出代碼,要求最壞情況下的時(shí)間復(fù)雜度不能高于O(n logk) 2、寫(xiě)程序輸出8皇后問(wèn)題的所有排列,要求使用非遞歸的深度優(yōu)先遍歷 3、有n個(gè)作業(yè),a1,a2?..an,作業(yè)aj的處理時(shí)間為tj,產(chǎn)生的效益為pj,最后完成期限為dj,作業(yè)一旦被調(diào)度則不能中斷,如果作業(yè)aj在dj前完成,則獲得效益pj,否則無(wú)效益。給出最大化效益的作業(yè)調(diào)度算法。?? 有道的一個(gè)筆試題,1-9,9個(gè)數(shù)組成三個(gè)三位數(shù),且都是完全平方數(shù)(三個(gè)三位數(shù) 占據(jù) 9個(gè)數(shù))求解法。?? 點(diǎn)評(píng)@林晚?xiàng)?歸云見(jiàn)鴻:(a*10+b)(a*10+b)100a^2+20ab+b^2 a 屬于 [1,2,3] a=3,b=1 31 961, a=2,b=3 23 529 400+40b+b^2 25 625 27 729 28 784 29 841 a=1,b=3 13 169 100+20b+b^2 14 196 16 256 17 289 18 324 19 361 =>最終唯一解 529 784 361 具體代碼如下(3個(gè)for循環(huán),然后hash): ?? 9月28日,大眾點(diǎn)評(píng)北京筆試題目: 1.一個(gè)是跳臺(tái)階問(wèn)題,可以1次一級(jí),1次兩級(jí),1次三級(jí),求N級(jí)的跳法一共多少種? 點(diǎn)評(píng):老題,?? 2.一個(gè)文件有N個(gè)單詞,每行一個(gè),其中一個(gè)單詞出現(xiàn)的次數(shù)大于N/2,怎么樣才能快速找出這個(gè)單詞? 點(diǎn)評(píng):還是老題,?? 大眾點(diǎn)評(píng)前面還有30道邏輯題,15道文字推理,15道數(shù)學(xué)推理,一共只給20min。?? 9月28日,網(wǎng)易筆試題: 1、英雄升級(jí),從0級(jí)升到1級(jí),概率100%。 從1級(jí)升到2級(jí),有1/3的可能成功;1/3的可能停留原級(jí);1/3的可能下降到0級(jí); 從2級(jí)升到3級(jí),有1/9的可能成功;4/9的可能停留原級(jí);4/9的可能下降到1級(jí)。每次升級(jí)要花費(fèi)一個(gè)寶石,不管成功還是停留還是降級(jí)。求英雄從0級(jí)升到3級(jí)平均花費(fèi)的寶石數(shù)目。 點(diǎn)評(píng):題目的意思是,從第n級(jí)升級(jí)到第n+1級(jí)成功的概率是(1/3)^n(指數(shù)),停留原級(jí)和降級(jí)的概率一樣,都為[1-(1/3)^n]/2)。 2、將一個(gè)很長(zhǎng)的字符串,分割成一段一段的子字符串,子字符串都是回文字符串。有回文字符串就輸出最長(zhǎng)的,沒(méi)有回文就輸出一個(gè)一個(gè)的字符。例如: habbafgh 輸出h,abba,f,g,h。 點(diǎn)評(píng):一般的人會(huì)想到用后綴數(shù)組來(lái)解決這個(gè)問(wèn)題,?? 10月9日,騰訊一面試題: 有一個(gè)log文件,里面記錄的格式為: QQ號(hào): 時(shí)間: flag: 如123456 14:00:00 0 123457 14:00:01 1 其中flag=0表示登錄 flag=1表示退出 問(wèn):統(tǒng)計(jì)一天平均在線的QQ數(shù)。 點(diǎn)評(píng):第8題后的騰訊面試題,讀者可以參看之。 ?? 10月9日,騰訊面試題: 1.有一億個(gè)數(shù),輸入一個(gè)數(shù),找出與它編輯距離在3以內(nèi)的書(shū),比如輸入6(0110),找出0010等數(shù),數(shù)是32位的。2.每個(gè)城市的IP段是固定的,新來(lái)一個(gè)IP,找出它是哪個(gè)城市的,設(shè)計(jì)一個(gè)后臺(tái)系統(tǒng)。?? 10月9日,YY筆試題: 輸出一個(gè)字符串中沒(méi)有重復(fù)的字符。如“baaca”輸出“bac”。對(duì)于一個(gè)多叉樹(shù),設(shè)計(jì)TreeNode節(jié)點(diǎn)和函數(shù),返回先序遍歷情況下的下一個(gè)節(jié)點(diǎn)。函數(shù)定義為T(mén)reeNode* NextNode(TreeNode* node)3 分割字符串。 對(duì)于一個(gè)字符串,根據(jù)分隔符seperator,把字符串分割,如果存在多個(gè)分隔符連在一起,則當(dāng)做一個(gè)分隔符。如果分隔符出現(xiàn)在“ ”符號(hào)之間,則不需要分割“ ”之間的字符。比如a++abc,分隔符為+,輸出a abc a+“hu+” 輸出a hu+ a++“HU+JI 輸出a ”HU JI。 請(qǐng)根據(jù)上述需求完成函數(shù):void spiltString(string aString,char aSeperator)。?? 10月9日,趕集網(wǎng)筆試 ?? 10月9日,阿里巴巴2013校園招聘全套筆試題(注:下圖中所標(biāo)答案不代表標(biāo)準(zhǔn)答案,有問(wèn)題,歡迎留言評(píng)論) 上述第15題,填空:lower+(upper-lower)/2 lower mid upper 0 6 12 7 9 12 7 7 8 8 8 8 比較4次 上述第16題,解答如下圖所示: 上述第17題,解答如下圖所示: 18、甲包8個(gè)紅球 2個(gè)藍(lán)球,乙包2個(gè)紅球 8個(gè)藍(lán)球。拋硬幣決定從哪個(gè)包取球,取了11次,7紅4藍(lán)。注,每次取后還放進(jìn)去,只拋一次硬幣。問(wèn)選的是甲包的概率? 點(diǎn)評(píng): 貝葉斯公式 + 全概率公式作答(參看鏈接:http://)。具體解答如下圖所示: 注:上述第15~18的解答全部來(lái)自讀者Lei Lei來(lái)信給出的解答,特此感謝。有任何問(wèn)題,歡迎隨時(shí)討論&指正,同時(shí),更歡迎其他朋友也一起來(lái)做這些題目(你的答案一經(jīng)選用,我可以根據(jù)你的要求,貼出你的個(gè)人主頁(yè)或微博地址或博客地址)。 19、已知一個(gè)n個(gè)元素的數(shù)組,第i個(gè)元素在排序后的位置在[i-k,i+k]區(qū)間,k< 10月10日,暴風(fēng)影音筆試: 都是非?;A(chǔ)的題目,這是其中一道:一個(gè)整數(shù)轉(zhuǎn)換成二進(jìn)制后,問(wèn)里面有多少個(gè)1。10月10日人人網(wǎng)面試題 第一面: 1、(1)++i 和 i++,那個(gè)效率高? (2)++++i,i++++,哪個(gè)是合法的? (3)實(shí)現(xiàn)int型的++i 和 i++操作。 2、一段程序,求輸出。(考察靜態(tài)變量和模版類(lèi)) ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? int g = 0;template int main(){ ?? ?? ?? ?? ?? ?? ?? cout << B 3、(1)實(shí)現(xiàn)二進(jìn)制轉(zhuǎn)十進(jìn)制。 (2)如果有下面這種能直接求二進(jìn)制轉(zhuǎn)十進(jìn)制的代碼,是怎么實(shí)現(xiàn)的? binary<1>::value;// 結(jié)果為1 binary<11>::value;// 結(jié)果為3 4、volatile、explicit、mutable表示的含義。 5、求整形數(shù)組的一個(gè)子數(shù)組,使得該子數(shù)組所有元素的和的絕對(duì)值最大。 6、(1)寫(xiě)求單鏈表是否有環(huán)的算法。(2)如果有環(huán),如何找出環(huán)的第一個(gè)結(jié)點(diǎn)。 7、實(shí)現(xiàn)單例模式。二面: 1、一個(gè)文本,一萬(wàn)行,每行一個(gè)詞,統(tǒng)計(jì)出現(xiàn)頻率最高的前10個(gè)詞(詞的平均長(zhǎng)度為L(zhǎng)en)。并分析時(shí)間復(fù)雜度。 2、求數(shù)組中最長(zhǎng)遞增子序列。 ?? 10月10日,網(wǎng)易2013校園招聘全套筆試題: ?? 10月10日,網(wǎng)易,數(shù)據(jù)挖掘工程師: 1,簡(jiǎn)述你對(duì)數(shù)據(jù)與處理的認(rèn)識(shí); 2,簡(jiǎn)述你對(duì)中文分詞的理解,說(shuō)明主要難點(diǎn)和常用算法; 3,常見(jiàn)的分類(lèi)算法有哪些; 4,簡(jiǎn)述K-MEANS算法; 5,設(shè)計(jì)一個(gè)智能的商品推薦系統(tǒng); 6,簡(jiǎn)述你對(duì)觀點(diǎn)挖掘的認(rèn)識(shí)。其它題目同 點(diǎn)評(píng):其它題目與上述第56題第一部分所述相同。 1.實(shí)現(xiàn)雙向鏈表刪除一個(gè)節(jié)點(diǎn)p,在節(jié)點(diǎn)p后插入一個(gè)節(jié)點(diǎn),寫(xiě)出這兩個(gè)函數(shù)。2.寫(xiě)一個(gè)函數(shù),將其中的t都轉(zhuǎn)換成4個(gè)空格。3.Windows程序的入口是哪里?寫(xiě)出Windows消息機(jī)制的流程。4.如何定義和實(shí)現(xiàn)一個(gè)類(lèi)的成員函數(shù)為回調(diào)函數(shù)? 5.C++里面是不是所有的動(dòng)作都是main()引起的?如果不是,請(qǐng)舉例。6.C++里面如何聲明const void f(void)函數(shù)為C程序中的庫(kù)函數(shù)? 7.下列哪兩個(gè)是等同的 int b;A const int* a = &b;B const* int a = &b;C const int* const a = &b;D int const* const a = &b;8.內(nèi)聯(lián)函數(shù)在編譯時(shí)是否做參數(shù)類(lèi)型檢查? void g(base & b){ b.play;} void main(){ son s;g(s);return;} 深圳市九城恩科軟件技術(shù)有限公司 java程序員筆試題 JAVA 程序員筆試題 時(shí)間:30分鐘 試題一: 簡(jiǎn)單描述一下什么是事務(wù)管理,事務(wù)管理中有哪些語(yǔ)句? 姓名: 試題二: 跳出當(dāng)前循環(huán)的關(guān)鍵詞是什么?繼續(xù)本次循環(huán)的關(guān)鍵詞是什么? 試題三: 在JSP頁(yè)面源代碼中寫(xiě) “${flag}”是代表什么意思? 試題四: 請(qǐng)寫(xiě)出最少五種設(shè)計(jì)模式的名稱(chēng)。 試題五: 請(qǐng)寫(xiě)出Eclipse 中下列功能的快捷鍵: 刪除當(dāng)前行: 注釋當(dāng)前行: 代碼助手完成一些代碼的插入: 打開(kāi)類(lèi)型: 打開(kāi)資源: 試題六: 什么情況下Eclipse不編譯生成Class文件? 深圳市九城恩科軟件技術(shù)有限公司 java程序員筆試題 試題七: public static void main(String[] args){ int i=3,j=16;do{ if(++i>=j--)continue;}while(i<9);System.out.println(“i=”+i+“;j=”+j);} 這段程序運(yùn)行后輸出的結(jié)果是什么? 試題八: public class One { } public class Two extends One { } protected void printA(){System.out.println(“two A”);} private void printB(){System.out.println(“two B”);} public static void main(String[] args){ Two t = new Two();t.printAB();} protected void printA(){System.out.println(“one A”);} private void printB(){System.out.println(“one B”);} protected void printAB(){printA();printB();} 這段程序運(yùn)行后輸出的結(jié)果是什么? 試題九: 有一個(gè)表 “表A” 中包含 “姓名”,“成績(jī)”兩個(gè)字段,請(qǐng)寫(xiě)一個(gè)SQL語(yǔ)句查詢出“成績(jī)”大于60分的,“姓名”有重復(fù)的人的名字 試題十: 請(qǐng)寫(xiě)一個(gè)方法實(shí)現(xiàn):傳入的一個(gè)大于10位的字符串,把字符串的最后兩位移動(dòng)到字符串的第4位后面。 姓名:________________ 開(kāi)始時(shí)間:________________(完成時(shí)間1個(gè)小時(shí)) 1、HTTP 協(xié)議里 GET和POST請(qǐng)求的區(qū)別 2、session與cookie的區(qū)別 3、數(shù)據(jù)庫(kù)中的事務(wù)是什么? 4、優(yōu)化MYSQL數(shù)據(jù)庫(kù)的方法,舉例說(shuō)明。(多寫(xiě)多得,可寫(xiě)在反面) 5、PHP語(yǔ)句include和require的區(qū)別是什么 6、JS表單彈出對(duì)話框函數(shù)是什么?獲得輸入焦點(diǎn)函數(shù)是什么? 7、下面的PHP5程序的輸出值是什么? $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num;?> 8、PHP檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)是什么? 9、談?wù)剬?duì)mvc的認(rèn)識(shí)? 10、一個(gè)整數(shù)數(shù)組包含10個(gè)元素,未排好序 9,16,25,32,2,1,29,81,36,21 寫(xiě)一個(gè)PHP程序,1)對(duì)數(shù)組進(jìn)行排序 2)用二分法查找并輸出 20 這個(gè)數(shù)在數(shù)組中的序(序號(hào)從1開(kāi)始,查找不到返回0),寫(xiě)在反面 11、請(qǐng)寫(xiě)一個(gè)PHP函數(shù)驗(yàn)證電子郵件的格式是否正確 12、寫(xiě)出Linux下 創(chuàng)建目錄、刪除目錄、刪除文件、查看指定目錄內(nèi)容、移動(dòng)文件的命令,并舉例說(shuō)明 13、CSS中margin和padding的區(qū)別 14、簡(jiǎn)述ajax的原理 15、假設(shè)給你5臺(tái)服務(wù)器,請(qǐng)大致的描述一下,如何使用你所熟悉的軟件,搭建一個(gè)日PV 100萬(wàn)左右的中型網(wǎng)站,包括數(shù)據(jù)庫(kù)、WEB服務(wù) Java程序員筆試題 說(shuō)明:該份題目要求在1小時(shí)內(nèi)答完 1、工廠方法模式和抽象工廠模式的區(qū)別 2、jsp/servlet 中 forward, include, reDirect 之間的區(qū)別 3、JSP中的兩種include包含指令的區(qū)別與用法 4、ArrayList和Vector的區(qū)別,HashMap和Hashtable及HashSet的區(qū)別? 5、請(qǐng)說(shuō)明在實(shí)際應(yīng)用中,java.sql 包中的Statement和PreparedStatement有何區(qū)別? 6、如何遍歷一個(gè)集合(collection),并在屏幕上打印出集合中的每個(gè)元素public void printStr (Collection cols){ } 7、寫(xiě)一個(gè)方法,實(shí)現(xiàn)字符串的反轉(zhuǎn),例如:輸入abc,輸出cba PublicString reverseStr(String str){ //代碼 } 8、輸入為整數(shù)數(shù)組,請(qǐng)寫(xiě)出如下的排序算法,使得數(shù)組data里面存儲(chǔ)的數(shù)字隨數(shù)組腳標(biāo)的增大而依 次增大,即越小的數(shù)字存儲(chǔ)的位置越靠前 Public void sort(int[]data){ } 9、用戶在JSP: input.jsp中輸入姓名和手機(jī)號(hào)碼,點(diǎn)”Done”按鈕來(lái)提交請(qǐng)求到一個(gè)/ 6 servlet:test.java。test.java將輸入的姓名和手機(jī)號(hào)碼存儲(chǔ)在文件store.txt里。 請(qǐng)寫(xiě)出input.jsp, test.java的程序源碼,并在input.jsp和test.java中分別通過(guò)js和java代碼對(duì)輸入進(jìn)行校驗(yàn),如果1)姓名項(xiàng)沒(méi)有填寫(xiě)或者輸入的長(zhǎng)度超過(guò)了20個(gè)字符2)手機(jī)號(hào)碼項(xiàng)沒(méi)有填寫(xiě),或者輸入了非數(shù)字的字符或者輸入的長(zhǎng)度不是13位,則返回input.jsp,并給出相應(yīng)的錯(cuò)誤提示。 10、有若干條有關(guān)城市的信息,每條包括如下屬性:ID(唯一遞增的序列),CITY(城市名稱(chēng)),DESC(城市說(shuō)明),要求設(shè)計(jì)一套數(shù)據(jù)結(jié)構(gòu)及算法使得1)所有登陸系統(tǒng)的用戶均能使用這些城市信息2)能夠根據(jù)城市ID 號(hào)或名稱(chēng)獲得城市的其他信息3)如果從該數(shù)據(jù)結(jié)構(gòu)中找不到合適的城市信息,可以往該數(shù)據(jù)結(jié)構(gòu)中添加新的城市信息,但相同的城市(ID號(hào)或名稱(chēng)有任意一個(gè)相同均認(rèn)為是同一城市)在數(shù)據(jù)結(jié)構(gòu)中只能有一條記錄 4)如任一條城市信息,超過(guò)兩個(gè)小時(shí)沒(méi)有被使用(查詢)則需自動(dòng)將其刪除 pubic class CityCache{ } 11、讀下面一段程序,寫(xiě)出運(yùn)行結(jié)果 ---- pubicclassBaseClass{ static{ System.out.println(“aaaaa”);/ 6 } BaseClass(){ System.out.println(“11111”); } } publicclassDerivedClass extendsBaseClass{ static{ System.out.println(“bbbbb”); } DerivedClass(){ System.out.println(“22222”); } } publicclassStartRun { public static void main(String[ ] args){ DerivedClasssdc 1 = newDerivedClass(); dc1 = newDerivedClass(); } } 12、請(qǐng)寫(xiě)出符合要求的sql 語(yǔ)句(假定數(shù)據(jù)庫(kù)為Oracle)。/ 6 現(xiàn)有數(shù)據(jù)表a,建表語(yǔ)句如下: create table a(bm char(4),——編碼 mc varchar2(20)——名稱(chēng)) 表中數(shù)據(jù)如下 bmmc 11111111 11121111 11131111 11141111 要求1:用一條sql語(yǔ)句實(shí)現(xiàn)對(duì)表a中數(shù)據(jù)的復(fù)制,即達(dá)到如下的結(jié)果(2)bmmc 11111111 11121111 11131111 11141111 11111111 11121111 11131111 11141111/ 6 要求2:請(qǐng)刪除表中重復(fù)的記錄(bm和mc都相同的記錄為重復(fù)記錄) 13、classStack { LinkedListlist = new LinkedList() public synchronized void push(Objectx){ synchronized(list){ list.addLast(x); notify(); } } public synchronized Object pop(){ synchronized(list){ if(list.size()<=0) wait(); return list.removeLast(); } }/ 6 } 請(qǐng)問(wèn)上面這個(gè)類(lèi)中有什么錯(cuò)誤?應(yīng)該怎么解決?14、15、請(qǐng)寫(xiě)出MSSQL、ServerMysql和ORACE實(shí)現(xiàn)分頁(yè)算法的sql語(yǔ)句。UNIX和網(wǎng)絡(luò)基礎(chǔ),依次寫(xiě)出完成下列的操作命令,最好有常用參數(shù)的簡(jiǎn)單說(shuō)明 1)如何顯示當(dāng)前的IP配置信息 2)查看當(dāng)前目錄 3)拷貝文件或目錄 4)移動(dòng)文件或目錄 5)刪除文件或目錄 6)切換用戶 7)修改文件或目錄的權(quán)限 8)查看日志文件的最后1行 9)查看系統(tǒng)內(nèi)存、CPU的使用狀況 10)查看系統(tǒng)正在運(yùn)行的和apache相關(guān)的進(jìn)程/ 6第二篇:普天C++筆試題
第三篇:JAVA程序員筆試題
第四篇:PHP程序員筆試題
第五篇:Java程序員筆試題