九度OJ最短摘要的生成

2021-08-26 16:59:39 字數 536 閱讀 3476

使用滑動視窗的思想來獲取最短摘要,可以達到o(n)的時間複雜度。

#include #include #include #define max 100010

char s[100010],p[100010];

int hash[10],movewindow[10],len1,len2,minlen;

int num; //滑動視窗中*的個數

bool isallexisted() //判斷滑動視窗中是否包含所有的關鍵字

if(num>=temp) //缺少的字元使用*來代替

return true;

else

return false;

}int getminabstract() //取得最短摘要

{ int i,start=0,end=len2-1;

minlen=max;

num=0;

for(i=start;i

如果使用二分搜尋的思想可以達到o(n*lgn)的時間複雜度。

最短摘要生成

問題定義 給定乙個字串str,以及乙個關鍵字字串陣列key,求str中包含key中所有字串的最短子串。基本方法 雙指標掃瞄字串 詳細演算法 1.使用start和end兩個整數來指示掃瞄位置。均初始化為0。2.對end加1,直到str start,end 中包含所有關鍵字,或者end strlen s...

最短摘要生成

題目 抽象點說,就是在乙個字串中,找一些目標字串,找到包含所有目標字串的最小字串。題目雖然叫做最短摘要生成,但和實際的搜尋snippet的計算還是有比較大的差距的。先來看看這些序列 w0,w1,w2,w3,q0,w4,w5,q1,w6,w7,w8,q0,w9,q1 w0,w1,w2,w3,q0,w4...

最短摘要生成

題目 抽象點說,就是在乙個字串中,找一些目標字串,找到包含所有目標字串的最小字串。題目雖然叫做最短摘要生成,但和實際的搜尋snippet的計算還是有比較大的差距的。解法 文獻 1 給出了一種比較好的解法,策略還是使用雙指標,雙指標對於很多演算法設計很有價值,演算法的思想是採用兩個指標,開始兩個指標都...