LCS - Longest Common Substring

no tags 

A string is finite sequence of characters over a non-empty finite set Σ.

In this problem, Σ is the set of lowercase letters.

Substring, also called factor, is a consecutive sequence of characters occurrences at least once in a string.

Now your task is simple, for two given strings, find the length of the longest common substring of them.

Here common substring means a substring of two or more strings.


The input contains exactly two lines, each line consists of no more than 250000 lowercase letters, representing a string.


The length of the longest common substring. If such string doesn't exist, print "0" instead.




Notice: new testcases added

hide comments
mwx36mwx: 2018-05-26 10:33:53

manber-myers works for me :-)

cold_chair: 2017-12-08 11:26:37

As the example of Suffix automation,this problem is so classic!

Rajivteja: 2017-11-08 05:42:15

O(NlogN) suffix array won't work. You need to implement the O(N) suffix tree/suffix automaton for this.

darkghostnj: 2017-09-11 13:48:34

first i got TLE using suffix Automaton and dp and by changing the suffix Automaton algorithem i get AC with a good time ( it turns out that the old suffix Automaton implementation was very slow )

lu: 2017-02-28 13:56:19

Last edit: 2017-02-28 14:03:40
kiwi1995: 2016-12-13 15:18:14

suffix tree with optimization...pheww...

arun_1997: 2016-12-02 22:08:54

My first implementation of suffix Automaton...

Abdo: 2016-11-03 19:34:26

Weak test cases.

Last edit: 2016-11-03 20:28:09
skmonir: 2016-08-26 12:07:51

After reading comments, i thought it won't get AC using O(NlogN) suffix array. But whoa! AC using O(NlogN) + KasaiLCP in 0.14 sec :D

Last edit: 2016-08-26 12:09:08
square1001: 2016-07-26 13:51:47

O(N) suffix array is very efficient!
Actually, I ever solved this problem in AOJ, so I copied my solution from AOJ :-)

Last edit: 2016-07-26 13:53:22

Added by:Bin Jin
Time limit:0.294s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64 CPP