1:請描述數據結構中棧和隊列的區別。并說出3個操作。
答:棧先進后出。隊列先進先出。例如(pop() push() empty() back() front());
2:請描述一下C++中多態。舉個例子:
我學java的。但我記得多態應該是重載和重寫。
3:請描述下TCP四次揮手。并說下Time_wait的作用。
四次揮手的圖我畫對了。但發的包名稱亂說了。。。Time_wait我以為是等待時間。時間到了就默認關閉的樣子。。。
1:寫個能將整篇文章單詞翻轉的程序。不允許使用任何函數。這個ACM題庫里有不說了。
2:最長遞增子序列:
這道題當場傻逼了。不過印象里是dp用LCS做的。后來一直傻逼。暴力做了。。。
其實是把源串排序用排序后的串和源串求LCS。傻逼了
3:寫個有限狀態機。獲得C++代碼中所有的注解。
三:系統設計:設計一個同時在線用戶量為1億時。程序要隨時能夠更新游戲的排名、用戶要能查到自己排名。
我設計:
1:根據用戶排名設計哈希算法。把1億用戶的數據映射到1W個文件中。這樣每個文件有1W的用戶。文件加上排名索引。
2:讀寫分離。即存系統和讀系統分離成兩部分。
3:用戶讀取數據時先按索引查到用戶當前分數大致的排名文件。再在文件中進行查詢。
4:存,因為存不是特別好控制。插入文件后更新所有文件的索引。但可能某個文件會變得特別大。當1個文件的用戶量到達2W時候分裂文件。
后記:以上東西不一定正確。但我覺得我一個渣渣大學的本科生。能與這么多研究生在一個考場里筆試還是蠻爽的。繼續找工作ing....