1, 一個(gè)文本文件有多行,每行為一個(gè)URL。請(qǐng)編寫(xiě)代碼,統(tǒng)計(jì)出URL中的文件名及出現(xiàn)次數(shù)。
a) 文件名不包括域名、路徑和URL參數(shù),例如http://www.rs.com/n.op/q/rs?id=1中的文件名是rs。
b) 部分URL可能沒(méi)有文件名,例如http://www.abc.com/,這類統(tǒng)計(jì)為“空文件名”。
c) 出現(xiàn)在不同URL中的相同文件名視為同一文件名,例如http://www.ceshi.com/hi.php
和ftp://ftp.cdef.com/hi.php為同一文件名
文件內(nèi)容示例如下:
http://www.test.com/abc/de/fg.php?id=1&url=http://www.test.com/index.html
http://www.ceshi.com/hi.jsp
ftp://ftp.ceshi.com/hi.jsp
http://www.hello.com/cw/hi.jsp?k=8
http://www.hi.com/jk/l.html?id=1&s=a.html
http://www.rs.com/n.op/q/rs?id=1
http://www.abc.com/
2,一個(gè)簡(jiǎn)單的論壇系統(tǒng),以數(shù)據(jù)庫(kù)儲(chǔ)存如下數(shù)據(jù):
用戶名,email,主頁(yè),電話,聯(lián)系地址,發(fā)帖標(biāo)題,發(fā)帖內(nèi)容,回復(fù)標(biāo)題,回復(fù)內(nèi)容。
每天論壇訪問(wèn)量300萬(wàn)左右,更新帖子10萬(wàn)左右。
請(qǐng)給出數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì),并結(jié)合范式簡(jiǎn)要說(shuō)明設(shè)計(jì)思路。
3,現(xiàn)有兩個(gè)文件,
a)數(shù)據(jù)文件A,格式為:關(guān)鍵詞、IP地址、時(shí)間,記錄條數(shù)為1000萬(wàn)左右,該文件是無(wú)序排列的。
b)數(shù)據(jù)文件B是關(guān)鍵詞ID到關(guān)鍵詞的對(duì)應(yīng)表文件,格式為:ID、關(guān)鍵詞,記錄條數(shù)在100萬(wàn)左右,也是無(wú)序排列的。該對(duì)應(yīng)表中的記錄是一一對(duì)應(yīng)的,不存在ID或者關(guān)鍵詞重復(fù)的情況。
要求將數(shù)據(jù)文件A對(duì)應(yīng)的關(guān)鍵詞替換為B中的ID,生成新的數(shù)據(jù)文件C,數(shù)據(jù)文件C的格式為:關(guān)鍵詞ID、IP地址、時(shí)間。
請(qǐng)?jiān)O(shè)計(jì)一個(gè)程序,實(shí)現(xiàn)上述功能,并分析時(shí)間復(fù)雜度和空間復(fù)雜度。運(yùn)行程序所使用的服務(wù)器的內(nèi)存為1G,硬盤(pán)足夠大。(至少要給出關(guān)鍵算法和設(shè)計(jì)思路)
------------------------------
貌似這個(gè)是很常見(jiàn)的了,嗯~~第一個(gè)題目自己做過(guò).好像是某天一時(shí)興起用php寫(xiě)得一個(gè)..回頭明天上午查查我機(jī)器看看.第三個(gè)不錯(cuò)..剛好下了sogou實(shí)驗(yàn)室里的數(shù)據(jù),明天中午拿那堆數(shù)據(jù)試試
看電視又忘了時(shí)間.10點(diǎn)半了..唉~~睡覺(jué)睡覺(jué)去
補(bǔ)上今天找到的第一個(gè)題目的核心代碼.代碼丟了好久.找了半天才找到
$t = "http://www.test.com/abc/de/fg.cgi?id=1&url=http://www.test.com/index.html?id=3" ;
$pattern = "|\/([^/]*?[^\?\/]{0,4})(\?.*?){0,}$|i";
echo grepStringArryValue($pattern,$t,1);
function grepStringArryValue($pattrn,$tager,$i){
if(!preg_match ($pattrn,$tager,$arraylist))
return false;
if(count($arraylist[$i])>=$i-1)
return $arraylist[$i];
return false ;
}
這是段php.采用正則提取需要的數(shù)據(jù),如果沒(méi)有的話 則返回false.用得是php.這幾個(gè)月用php多.工作的時(shí)候閑著就寫(xiě)出來(lái)了.其實(shí)很簡(jiǎn)單. 關(guān)鍵就那句"|\/([^/]*?[^\?\/]{0,4})(\?.*?){0,}$|i" 我測(cè)試了題目里的主要的那幾個(gè)link.基本上都能按要求提取出來(lái),至于讀取文件,我懶得寫(xiě),反正就是fopen()....今天太忙了.時(shí)間安排得太滿.新收購(gòu)的網(wǎng)站需要個(gè)后臺(tái).下個(gè)星期就要.寫(xiě)起來(lái)倒簡(jiǎn)單.關(guān)鍵是業(yè)務(wù)比較復(fù)雜.還有什么短信息..@^%%^#$@& 頭大!!