Evaluates the longest string, that is i) common to a number of words and ii) is repeated a certain number of times in those strings.
This implementation is using a array of struct's, thus avoiding the creation of a lot of class instances. If you want to compare the code with the literature, I recommend looking in the sources of LongestCommonRepeatL instead.
For details of the algorithm see the very nice paper by Michael Arnold and Enno Ohlebusch, 'Linear Time Algorithms for Generalizations of the Longest Common Substring Problem', Algorithmica (2011) 60; 806-818; DOI: 10.1007/s00453-009-9369-1. This code was adopted by D.Lellinger from the C++ sources from the web site of the authors at http://www.uni-ulm.de/in/theo/research/sequana.html.
Constructor | Description |
Full Usage:
LongestCommonRepeatA(gsa)
Parameters:
GeneralizedSuffixArray
-
Generalized suffix array. It is neccessary that this was constructed with individual words.
|
Initializes a new instance of the problem solver for the repeated longest common substring problem.
|
Full Usage:
LongestCommonRepeatA(gsa, x_repeats)
Parameters:
GeneralizedSuffixArray
-
Generalized suffix array. It is neccessary that this was constructed with individual words.
x_repeats : int
-
Number of repeats to find in the words.
|
Initializes a new instance of the problem solver for the repeated longest common substring problem.
|
Instance member | Description |
|
Evaluates the repeated longest common substring. After evaluation, the results can be accessed by the properties of this instance. Please be aware that the amount of resulting information depends on the state of P:StoreVerboseResults.
|
Full Usage:
this.Evaluate
Parameters:
int
-
Number of repeats to find in the words.
Returns: LongestCommonRepeatA
This instance.
|
Evaluates the repeated longest common substring. After evaluation, the results can be accessed by the properties of this instance. Please be aware that the amount of resulting information depends on the state of P:StoreVerboseResults.
|