今天上午9:30去北大方正 apabi公司面試,頗有心得.兩位面試官給我印象非常好,很儒雅的感覺,交談也很輕松,有一個(gè)還是我四川老鄉(xiāng).四川老鄉(xiāng)在面試最后對(duì)于語重心長(zhǎng)的說了一句話:"不論你以后是不是在我們公司工作,你要記住,做軟件研發(fā)必須要做到對(duì)新技術(shù)有高度的敏銳力,時(shí)刻更新自己的軟件知識(shí),不能總用幾年的技術(shù)來做現(xiàn)在的事情!"雖然這句話給我頗有壓力,但是我很感謝,他讓我熟悉到軟件跟程序的區(qū)別不僅僅是系統(tǒng)跟模塊那么簡(jiǎn)單,設(shè)計(jì)模式,框架設(shè)計(jì)等等方面的知識(shí)經(jīng)驗(yàn)我?guī)缀鯙榱,一直在?jiǎn)歷上寫自己做軟件,現(xiàn)在想想,其實(shí)我自己寫過上萬行的程序而已,離軟件的差距還很遠(yuǎn)。
方正的筆試題是在面試完我后再做的,其實(shí)當(dāng)時(shí)筆試對(duì)我來說都沒多少意義了,面試官幾乎很清楚我的底細(xì)了,但是筆試題的最后兩道程序設(shè)計(jì)很吸引人,于是我堅(jiān)持做完了它,到12點(diǎn)多才離開方正。
程序設(shè)計(jì)第一題:設(shè)計(jì)算法對(duì)英文名字排序,用c/c++實(shí)現(xiàn)。比如“toms kite,john youte,tom clusze,lucy wade” 排序后的輸出結(jié)果應(yīng)為"jjohn youte,lucy wade,tom clusze,toms kite".呵呵,還算比較有難度吧,要點(diǎn)是要考慮內(nèi)存和時(shí)間上的優(yōu)化.
程序設(shè)計(jì)第二題:設(shè)計(jì)一個(gè)搜索算法,實(shí)現(xiàn)如下功能.在一個(gè)字符串中s(長(zhǎng)度m>3)可能有n個(gè)子符串(長(zhǎng)度為3)與之匹配(含重復(fù)匹配).怎樣分解s,使匹配子字符串的個(gè)數(shù)達(dá)到最大(含重復(fù)匹配).例如,字符串s="012312345231",需要匹配的字符串為"123","231",則當(dāng)s分解為0,123,123,45,231是,匹配數(shù)為4;當(dāng)s分解為01,231,2345,231時(shí),匹配數(shù)為2,則前一種分解方法比第二種更好.考慮時(shí)間和內(nèi)存優(yōu)化問題.
這兩道題個(gè)人認(rèn)為比較有水平,我做了很久,最后把代碼寫出來了,估計(jì)方法應(yīng)該沒錯(cuò),只是時(shí)間和內(nèi)存的開銷應(yīng)該不是最優(yōu)的了,搜索算法應(yīng)該用kmp算法匹配字符最優(yōu),總之,方正面試歸來,發(fā)現(xiàn)自己顯然僅僅會(huì)寫程序而已,做軟件,以后慢慢歷練吧.路漫漫其修遠(yuǎn)啊~~