最長公共子串
最長公共子串
字元串"ABABC","BABCA"以及"ABCBA"的最長公共子串是"ABC"。其他的公共子串包括"A"、"AB"、"B"、"BA"、"BC"以及"C"。
ABABC
|||
BABCA
|||
ABCBA
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
給定兩個字元串,長度為 的字元串 以及長度為 的字元串,求最長的子串 同時是 以及 的連續子串。
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
問題可以一般化為 k-公共子串問題——給定字元串的集合,其中, 。對於滿足 的,找出至少是 中 個字元串的公共子串的最長串。
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
最長公共子串
利用廣義後綴樹,我們可以在 的時間複雜度內求出 和 的最長公共子串的長度和他們的起始位置。而如果利用動態規劃求解,則時間複雜度為。而對於一般化的公共子串問題,使用動態規劃的求解的時間複雜度為 ·...· ,利用廣義後綴樹則需 的時間複雜度。
利用廣義後綴樹
圖一
最長公共子串
最長公共子串
最長公共子串