題意:給定兩個字串s1、s2,求s1的字首和s2的字尾的最長公共部分。
思路:將s1和s2連線後求nex陣列即可,當公共部分超過s1、s2長度的最小值時,輸出最小值。
ac**:
#include#include#include
using
namespace
std;
const
int maxn=1e5+5
;int
len1,len2,len,min,nex[maxn],ans;
char
s1[maxn],s2[maxn];
void
get_next()
}int
main()
printf(
"%d\n
",ans);
}return0;
}
KMP演算法 next陣列
通過上文完全可以對kmp演算法的原理有個清晰的了解,那麼下一步就是程式設計實現了,其中最重要的就是如何根據待匹配的模版字串求出對應每一位的最大相同前字尾的長度。我先給出我的 1 void makenext const char p,int next 214 next q k 15 16 現在我著重講...
KMP演算法 NEXT陣列
kmp和next陣列基本上是一起用的,有了next陣列,才有kmp演算法,講道理來說這兩個都是基於最大前字尾和,也就是說需要用到kmp的時候必須先把next陣列先求出來,next陣列就是由所匹配的word的每個子串的前字尾和最大匹配得到的,說實話next陣列的演算法給優化得已經很無解了,以至於至今我...
KMP演算法的next陣列
本文參考 google 資料結構 c語言 include include author silence time 2012 5 19 description kmp演算法的next using namespace std void next char t,int l,int next else 1 ...