I recetly come across an interview question : To find all the repeating substring in a given string with a minimal size of 2. The algorithm should be efficient one.
Cod
If you analyze the output for the string "AAAAAAAAAAAAAA"
, then there are O(n²) characters in it, so the algorithm is at least O(n²).
To achieve O(n²), just build the suffix tree for each suffix of s (indices [1..n], [2..n], [3..n], ..., [n..n]). It doesn't matter if one of the strings has no own end node, just count how often each node is used.
At the end, iterate over each node with count>1 and print its path.