This algorithm takes two arguments: String z1 and String z2. The algorithm then computes the longest substring which is contained in both strings.
In the project there are two versions of this algorithm: an iterative and a recursive one.
If there are multiple longest strings, my implementation only returns the first one found.