一面(4.24)
-
輸入URL到頁面顯示之後的整個過程
-
網絡七層模型
-
http和https的區別
-
TCP和UDP的區別
-
視頻面試用的是TCP還是UDP
-
Linux命令
-
找出指定端口被哪個進程佔用(Linux命令)
-
簡歷上的項目是基於怎樣的需求下完成的
-
針對項目進行提問
-
redis都有哪些瞭解
-
redis支持哪些數據類型
-
redis是單線程還是多線程的,爲什麼這樣設計?
-
redis和其他數據庫的區別
-
SQL語句
-
算法:刪除駝峯式字符串
給定一個駝峯樣式的字符串例如“AaABbBcBbcvQv…”->“bc”,兩個一樣的字符夾着一個不一樣的字符且中間的字符和兩邊的字符大小寫相反, 處理這個字符串去掉所有的駝峯。 //AaABbB //AaABbBbb //AaABbBbBbcbcQv bool fun(char ch1, char ch2) { return (isupper(ch1) && islower(ch2)) || (islower(ch1) && isupper(ch2)); } string deletestr(string& str) { vector<pair<int, int>> vec; int len = str.length(); int i = 0; int j = 0; int count = -1; while (i < len - 2) { if (str[i] == str[i + 2] && fun(str[i], str[i + 1])) { vec.push_back(make_pair(i, i + 2)); count++; //j = i + 2; i++; while (i <= vec[count].second) { if (i + 2 <= len - 1 && str[i] == str[i + 2] && fun(str[i], str[i + 1])) { vec[count].second = i + 2; } i++; } i = vec[count].second + 1; } else { i++; } } vector<bool> tmp(len,true); string res; for (int i = 0; i < vec.size(); ++i) { int first = vec[i].first; int end = vec[i].second; for (int k = first; k <= end; ++k) { tmp[k] = false; } } for (int i = 0; i < len; ++i) { if (tmp[i]) { res += str[i]; } } return res; }
-
硬幣問題
目前有1分,3分,5分面值的硬幣,要組成一個10分面值最少需要幾個硬幣
-
微信圖片發送測試用例設計
二面(4.27)
- C++內存空間
- 堆和棧的區別
- 多態
- 進程和線程的區別
- 進程調度算法都有哪些
- LRU的實現
- 實現單例模式(懶漢),考慮線程安全
- 快排的實現
- 給一組數字,根據快排,第1次,第2次…的排序結果說一下
- 輸入域名,長時間沒有得到迴應(原因排查)
- 頭條搜索框測試用例
- 反問環節
三面(4.28)
- 深挖項目
- 一個文件,有兩列數據,第一列是時間戳,第二列是IP地址,統計出有多少個不同的IP
- 實現兩個線程交叉打印你好
- http狀態碼
- 開放題:如果一架飛機上面有100個人,下飛機後需要對每個人進行核酸和體溫檢測,有什麼好的辦法緩解這種機場的滯留呢?
- 飛機上下來100個旅客,最多可能一個人檢測成陽性,你覺得最少用多少個試劑盒可以把這個可能是陽性的人找出來?
- 飛機上下來100個旅客,有10個人是陽性,如何把這10個人找出來?
- 你在大學期間做過最有成就感的事情是什麼?
- 職業規劃
- 反問環節
4.28晚上九點多收到OfferCall