poj1226 kmp 最長公共子串

2021-06-16 09:57:21 字數 455 閱讀 2569

題目:對於字串a1,a2,...,an  ,求乙個最大子串長度,使得它或者它的逆向串在每個串中出現

思路:對於a1串,尋找每乙個子串,與之後n-1個串匹配。子串長度的選取可以優化。

#include#include#includeusing namespace std;

const int maxn=101;

bool kmp(string a,string b)

j=-1;

for(i=0;i-1 && a[j+1]!=b[i]) j=fail[j];

if(a[j+1]==b[i]) j++;

if(j==a.length()-1)

return 1;

} return 0;

} int main()

cout<} return 0;

}

poj 最長公共子串行和最長公共子串

最長公共子串行 poj1458 問題描述 給出兩個字串,求出這樣的乙個最長的公共子串行的長度 子串行中的每個字元都能在兩個原串中找到,而且每個字元的先後順序和原串中的先後順序一致。sample input abcfbc abfcab programming contest abcd mnp samp...

最長公共子串行 最長公共子串

1 最長公共子串行 採用動態規劃的思想,用乙個陣列dp i j 記錄a字串中i 1位置到b字串中j 1位置的最長公共子串行,若a i 1 b j 1 那麼dp i j dp i 1 j 1 1,若不相同,那麼dp i j 就是dp i 1 j 和dp i j 1 中的較大者。class lcs el...

最長公共子串行 最長公共子串

1.區別 找兩個字串的最長公共子串,這個子串要求在原字串中是連續的。而最長公共子串行則並不要求連續。2 最長公共子串 其實這是乙個序貫決策問題,可以用動態規劃來求解。我們採用乙個二維矩陣來記錄中間的結果。這個二維矩陣怎麼構造呢?直接舉個例子吧 bab 和 caba 當然我們現在一眼就可以看出來最長公...