程式設計之美 最短摘要生成

2021-07-13 13:48:00 字數 876 閱讀 1963

本來以為這個會很難的,因為自己不是很了解這方面的東西。

ok~看了程式設計之美的code後 感覺很好,類似kmp演算法,跳過已經比對過的字串,然後向後移動。

思路就是 

我的句子  hello  are  you bottom of do the is bot doke astring

程式設計之美的思路 就是

設定乙個begin 乙個end 起初都指向句子頭

總結來說  就是 一遍獲得所有結果。

#include #include#include#include#includeusing namespace std;

bool ismatchall(vector& sentence,set& keys,int begin,int end)

}if(cnt==keysize)

return true;

return false;

}void find(vector& sentence,set&keys)

}while(ismatchall(sentence,keys,begin,end))

}cout<

string str;

while(cin>>str)

setkeys;

keys.insert("bottom");

keys.insert("bot");

find(sentence,keys);

return 0;

}

結果為:

mindist=6

bottom of do the is bot

《程式設計之美》 最短摘要的生成

w0,w1,w2,w3,q0,w4,w5,q1,w6,w7,w8,q0,w9,q1 解法一 依次操作下去,一直到遍歷至目標陣列w的最後乙個位置為止。時間複雜度是o m n 2 解法二 w0,w1,w2,w3,q0,w4,w5,q1,w6,w7,w8,q0,w9,q1 下次掃瞄,先把第乙個被掃瞄的位置...

程式設計之美 3 5最短摘要的生成

看了下 程式設計之美 這本書,記錄下3.5節的理解。1.題意是什麼?題目含義就是在已知字串s1中搜尋含有字串s2的最小字串,例如,s1 abcdemkfdc s2 cdk 則應該返回 kfdc 含有 意思是什麼?即包含即可,不需要相同順序。原書寫的有點拗口,其實對於關鍵字 微軟亞洲研究院 使命 而言...

程式設計之美 3 5 最短摘要的生成

題目 有搜尋後的網頁分詞序列 陣列w 其中w 0 w 1 w n 為分好的詞。找到w中最小的範圍w i w j 讓其包括所有的q。思路 最想當然的思路就是從w 0 開始,對每個q遍歷判斷有沒有一樣的,截取出第乙個包含q中元素的w i 到最後乙個包括q中元素的w j 需要o mn 次比較。如果前提能夠...