使用滑動視窗的思想來獲取最短摘要,可以達到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 給出了一種比較好的解法,策略還是使用雙指標,雙指標對於很多演算法設計很有價值,演算法的思想是採用兩個指標,開始兩個指標都...