9月28日,百度2014校招-武漢站-系統分析師
10月2日,暴風影音2014校招筆試
1、合并兩個已經排序的單鏈表為一個排序的單鏈表,相同內容只保留一個
如:單鏈表a:1->2->3->4
單鏈表b:3->4->5
輸出:1->2->3->4->5
2、編寫程序,在原字符串中把尾部m個字符移動到字符串的頭部,要求:長度為n字符串操作時間復雜度為O(n),時間復雜度為O(1)。
如:原字符串為”Ilovebaofeng”,m=7,輸出結果:”baofengIlove”。
點評:還是類似編程藝術第1章左旋字符串:http://blog.csdn.net/v_JULY_v/article/details/6322882。
3、暴風影音的片源服務器上保存著兩個文件a和b,各存放50億條URL,每條URL占用64字節,內存限制是4G,讓你找出a,b文件共同的URL。要求:算法設計。
點評:上述第3題等海量數據處理面試題,請參見此文第第一部分第6題:http://blog.csdn.net/v_july_v/article/details/7382693。
關于linux內核的幾個面試問題:
1、Linux中主要有哪幾種內核鎖?
2、Linux中的用戶模式和內核模式是什么含意?
3、用戶進程間通信主要哪幾種方式?
4、有哪幾種內存分配函數?
微軟一面:輸入兩個數,相加求和,二進制輸出。
阿里巴巴面試:
阿里的log文件如下,有三個字段:time(登陸或登出時間點)+uid+login或logout,每條記錄按時間順序排列。問題如下:給定一個時間點T,統計在線人數。
點評:參考分析請見http://blog.csdn.net/tnndye/article/details/12784237。
10月8日,百度移動開發-上海站筆試/面試題
1、三色球排序的問題,相同的球放到一起,讓你按順序輸出紅白藍三種顏色的球,可以用012來表示,要求只能掃描一次數組。
點評:荷蘭國旗問題,參見此文第8小節:http://blog.csdn.net/v_july_v/article/details/6211155。
2、實現C的strstr
點評:手寫字符串處理相關函數是面試中極為常見的一類題型。
功能:從字符串str1中查找是否有字符串str2,
-如果有,從str1中的str2位置起,返回str1中str2起始位置的指針,如果沒有,返回null。
給兩份參考代碼,一份是C代碼:
[cpp] view plaincopyprint?
char *mystrstr(char *s1 , char *s2)
{
if(*s1==0)
{
if(*s2)
return(char*)NULL;
return (char*)s1;
}
while(*s1)
{
int i=0;
while(1)
{
if(s2[i]==0)
return s1;
if(s2[i]!=s1[i])
break;
i++;
}
s1++;
}
return (char*)NULL;
}
char *mystrstr(char *s1 , char *s2)
{
if(*s1==0)
{
if(*s2)
return(char*)NULL;
return (char*)s1;
}
while(*s1)
{
int i=0;
while(1)
{
if(s2[i]==0)
return s1;
if(s2[i]!=s1[i])
break;
i++;
}
s1++;
}
return (char*)NULL;
}
一份是C++代碼:
[cpp] view plaincopyprint?
//copyright@caopengcs 2013/10月
class Solution {
public:
char *strStr(char *haystack, char *needle) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i,j;
for (i = j = 0; haystack[i] && needle[j];) {
if (haystack[i] == needle[j]) {
++i;
++j;
}
else {
i = i - j + 1;
j = 0;
}
}
return needle[j]?0:(haystack + i - j);
}
};
//copyright@caopengcs 2013/10月
class Solution {
public:
char *strStr(char *haystack, char *needle) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i,j;
for (i = j = 0; haystack[i] && needle[j];) {
if (haystack[i] == needle[j]) {
++i;
++j;
}
else {
i = i - j + 1;
j = 0;
}
}
return needle[j]?0:(haystack + i - j);
}
};
3、寫一個memmove的函數
點評:手寫常見字符串處理函數是面試官很喜歡考的一類題型。
10月9日,暴風影音校招研發筆試
1、給定字符串A和B,輸出A和B中的第一個最長公共子串,比如A=“wepiabc B=“pabcni”,則輸出“abc”。
2、TCP建立連接的3次握手過程?若最后一次握手失敗,會怎樣處理?
原文轉自:http://blog.csdn.net/v_july_v/article/details/11921021