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

2021-07-04 17:00:34 字數 888 閱讀 2820

看了下《程式設計之美》這本書,記錄下3.5節的理解。

1.題意是什麼?

題目含義就是在已知字串s1中搜尋含有字串s2的最小字串,例如,s1="abcdemkfdc",s2="cdk",則應該返回「kfdc」.

「含有」意思是什麼?即包含即可,不需要相同順序。

原書寫的有點拗口,其實對於關鍵字「微軟亞洲研究院  使命」而言,最短摘要為「微軟亞洲研究院成立於2023年,我們的使命」。一開始誤以為網頁返回的都是最短摘要了。

2.原書給出的**不全,特此補全

解釋下:

1)兩個指標指向原字串,兩個指標指向最終生成的字串

2)一開始先設定s1的長度為最小值,後來一旦包含「關鍵字字串」,即計算長度,發現新長度比原來設定的小,即儲存下來。

#include #include #include using namespace std;

bool isallexisted(string s1, string s2);

string minstr(string s1,string s2)

while (isallexisted(s1.substr(pbegin, pend - pbegin + 1), s2))

pbegin++;

} if (pend >= s1.length())

} //cout << resbegin << resend << endl;

return s1.substr(resbegin,resend-resbegin+1);

}bool isallexisted(string s1, string s2)

} return 1;

}int main(int argc, char *argv)

程式設計之美 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 次比較。如果前提能夠...

程式設計之美 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 次比較。如果前提能夠...

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

本來以為這個會很難的,因為自己不是很了解這方面的東西。ok 看了程式設計之美的code後 感覺很好,類似kmp演算法,跳過已經比對過的字串,然後向後移動。思路就是 我的句子 hello are you bottom of do the is bot doke astring 程式設計之美的思路 就是...