寫程式,寫**,是在面試中必不可少的環節,你要拿題,上機寫出**,好了,你可能不知道其中有多少的「貓膩」,是吧,夥計。別人我讀不告訴他。
一:你要讀懂題,懂得題意,要讓你實現什麼功能,看看題目的要求。
二:如果是演算法題,在腦海中想演算法的思想,在紙上寫出偽**,一般公司的面試演算法題,無非就是那幾道,沒有更深的,當然了,我說的是一般的公司(不包括
,microsoft
等),你可以在紙上走一遍演算法,什麼叫走一遍演算法,就是對演算法,舉乙個例子,用例子來驗證你的演算法。
三:非演算法題,就是讓你實現某些功能,這些都是題一般都是考你對資料結構的了解和掌握程度。
四:在寫**時,一定要注意**的細節問題。讓自己寫的**脫穎而出,是的,我也這麼想的。**的健壯性和安全性,是你不得不去考慮的問題,有的時候兩者不能兼得,那就要考慮乙個中間的方法了。
五:面試中的上機寫**題一般都是很簡單的,不會很難的,這個你懂得。
好了,下面我就從幾個例項來說明如何寫面試中的**:
例題一:
乙個鍊錶的操作,注意**的健壯和安全性。要求:(1
)增加乙個元素;(2
)獲得頭元素;(3
)彈出頭元素(獲得值並刪除)。
好了,讀題!題目很簡單了,如何實現了,是的,只有三個功能,這在面試題中,已經是要求較多的了。
首先,是鍊錶,不要告訴我,你說你看成陣列了,那只能說那乙個上帝蒙住了你的雙眼。
再看看要求,題目特別要求,注意**的健壯性和安全性。是的,你看到了嗎?
還有呢?是的,沒了,就只有三個功能了,很簡單的功能。
好了,夥計,來吧,讓我們完成這道題吧!
現在,題目在我的心中,**似乎有了雛形,我使勁回憶著自己寫的**,關於鍊錶操作的**,如果你想看看我寫的鍊錶操作的**,我有這麼一篇博文的。去看看吧,或許,不錯(其實,那是一篇和糟糕的博文,為什麼這麼說,因為很多的細節沒有注意到,只是實現了某些基本的功能和操作而已)。是的,我想起來了,鍊錶,乙個節點挨著乙個節點的,節點由兩部分組成,資料域和指標域,是吧,我沒有操作,還有什麼?乙個類,乙個對鍊錶操作的封裝的類。好了雛形有了。
是的,上面的這中方法看起來不錯,是的,自己來實現每一行**。何不去想想別的方法,比如有現成的類庫來實現,是的,夥計,你應該想到的。題目很清楚的說了,沒有不允許你用現成的類庫來實現,
c++的標準類庫,標準類庫的健壯性和安全性,你不應該去懷疑的,好了,既然他沒有說,那就用類庫來實現吧,
stl,不錯的選擇,安全性有點,但是,至少比你自己寫的好多了。來吧,已經說了這麼多了。
以上是用
stl庫來實現的,如果需要自己完全實現的話,**可能就不只是這麼點了,如果你對第一種方法感興趣,我有一篇關於鍊錶的操作的博文,不妨看看!
其實,如果真正的來分析這道題得意思,到底用什麼來實現好呢?出題人想讓你用什麼來實現呢?其實,這個也說不清楚,真的不好琢磨的。用自己完全實現的方法來做這道題,考察基本功的紮實程度,用
stl來實現,考察你對
stl類庫的基本掌握情況。以我個人的話來說,我會將二者都寫上,為什麼,因為
stl實現起來很簡單,不會浪費什麼時間。而完全自己實現鍊錶的操作,則能展示自己的紮實的基本功,這樣是很不錯的,如果你怕畫蛇添足,選擇你最穩的方法來實現,但是,話又說回來,如果對鍊錶的操作基本功都不過關,
stl更是一塌糊塗的。
例題二:
編寫my_strcpy
函式,實現與庫函式
strcpy
類似的功能,不能使用任何庫函式;
好了,這道題,很明顯,不能使用任何的庫函式。
strcpy
的功能你不知道的話,我只能說,其實你已經可以放棄這次面試了。不是嗎?像這種實現某個特定類庫中函式的功能是面試中的常客,大家需要多多的練手的。此時,你對於此題,需要知道什麼?
strcpy
的函式原型,引數是什麼,返回值型別。
好了,面試中還是靠自己的能力水平了,讀懂題意,注意細節,該判斷變數的合法性就要判斷。一定要讓自己的程式好看又實用了。
注:文中內容僅為個人觀點,**如有錯誤,或者不妥,請大家提出,因為我也是菜鳥,還沒有到達寫出完美**的時候。如果大家有好的方法,希望大家能共享你的**,我們共同交流!
每日一題(7)
複雜度 時間複雜度 o n 空間複雜度 o n 遞迴棧空間 思路 從末尾到首位,對兩個單鏈表每一位數字對齊相加,再將結果用單鏈表表示出來即可。技巧在於如何處理不同長度的數字,以及進製和最高位的判斷。這裡對於不同長度的數字,我們通過將較短的數字補0來保證每一位都能相加。遞迴寫法的思路比較直接,即判斷該...
面試 每日一題(8)
好長時間沒有更新部落格了,特別是這個專欄,一是因為自己比較忙,二是因為我還是比較懶的緣故。讓各位見笑了。今天在更新一篇。像什麼strcpy strcat等等字串的操作和實現在面試中經常出現,不管是上機題還是筆試題。而今天在這裡我將重點講講strcpy和memcpy的實現,而memset也會稍微提一下...
面試 每日一題(3)
嘿,夥計,你在讀我的博文嗎?如果在,那就提點意見吧!好吧,廢話少說,開是吧!題目 const 符號常量 1 const char p 2 char const p 3 char const p 說明上面三種描述的區別 看到了嗎?夥計,我說的沒有錯吧,確實是很麻煩的問題,是吧!你現在可以自己在心裡分析...