Find the longest repeating string and the number of times it repeats in a given string
algorithm, c
Solution
You can solve this in linear time by building a suffix tree and taking a path from the root to the deepest internal node; this will give you the longest repeated string. Once you have that string, it's trivial to count the number of times it appears.
Problem
For example, given string "abc fghi bc kl abcd lkm abcdefg", the function should return string "abcd" and the count of 2. A O(n^2) solution seems easy but I am looking for a better solution. Edited: If nothing better than O(n^2) is possible than which approach would be best performance wise.