十道騰訊軟體開發工程師面試題

2021-07-13 16:06:30 字數 1161 閱讀 7359

1、介紹一下你自己。(嚴格來說這個不能算乙個問題,每家公司基本都要問)

一、osi模型有幾層?

二、說說c++的多型?為什麼使用虛函式比非虛函式耗費的時間更多?

三、有乙個全域性變數int a=0,現在兩個執行緒各自迴圈執行100次a++操作,問最後a的值是多少?

五、智力題:一片草地的草每天勻速地長,m隻羊花p天能吃完,n隻羊花q天能吃完,問現在k隻羊花多少天能吃完?( 記不清m,p,n,q,k的具體數值了,總之是根據已有的兩個條件列出二元一次方程組來求解)

六、手寫快速排序程式。快排的複雜度是多少?給定1組數1,4,5,5,8,9,7,在快排過程中這兩個5是否會被交換?

七、簡述怎樣用兩個棧實現乙個佇列的功能?只需實現入隊、出隊。

八、你想開啟電視看世界盃,結果發現電視黑屏完全沒反應,應該怎麼檢測故障?

二面的兩個問題我是這麼解答的:

九、寫乙個函式判斷乙個字串裡的小括號、大括號是否匹配。例如,輸入為"(){}"時輸出為true,輸入為「」時輸出為true,輸入為「(」時輸出為false。

(我用乙個棧來儲存,對字串從左往右掃瞄,遇到左括號就壓進棧裡,遇到右括號就判斷是否跟棧頂元素匹配,如果不匹配就讓整個函式直接返回false,如果匹配就取出棧頂元素。注意右括號始終不會進棧。掃瞄完後如果棧不為空就說明還有多餘的左括號,返回false;否則返回true。)

十、如果ab*c=de,de+fg=hi,其中從a到i這9個字母代表9個不同的數字,求這9個數字分別是多少。

(我寫了5重迴圈,a,b,c分別從0到9迴圈,用乙個布林陣列記錄每個數字是否使用過,篩掉有重複數字的情況,然後可以直接根據ab*c=de求出d,e,再篩掉有重複數字的情況,然後這個內層迴圈裡再讓f,g分別從0到9迴圈,可直接得出h,i,檢查是否符合。最後面試官跟我說第2題他本來想讓我用數學方法求解的,沒想到我直接就寫了**了,他嫌麻煩了。)

最後問了一下個人的學習和生活情況。這位面試官搞並行處理,我到房間的時候他正在給另乙個同學面試,他就拿來兩張紙讓我站在門口寫**,相當於把每人半小時的面試時間壓縮了一半……

最後給大家再支個招:

十道前端面試題(1)

陣列去重 http狀態碼 css彈性布局 position屬性有哪些值,分別有什麼含義 const和let的區別,可以改變const定義物件某個屬性嗎 this的理解,如何改變this的指向 let和var的區別,let的產生背景 var的變數提公升底層原理是什麼 箭頭函式,箭頭函式的特點 相同點 ...

十道前端面試題(2)

為什麼css樣式初始化,目的是為了什麼 js繼承 常見布局的方法 rem,px,em的區別 typeof去判斷資料型別返回值有哪些 快排和冒泡的原理 清除浮動的方法 定時器settimeout的執行機制 get和post的請求區別 浮動元素有什麼特性 之所以要進行css樣式初始化是因為不同瀏覽器對標...

十道前端面試題(9)

前端效能理解,優化有哪些 為什麼瀏覽器會產生同源策略 如何獲取元素的父節點和兄弟節點 jsonp的原理是什麼,處理script標籤還可以通過什麼實現?靜態資源標籤 http請求頭,響應頭裡面有哪些 margin坍塌 寫乙個api實現insertafter promise的狀態有哪些 preventd...