Find longest common sublist of two lists

Latest on Hackage:0.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

OtherLicense licensed by Ian Lynagh
Maintained by

Provides a function lcs that takes two lists and returns a longest common sublist. For example, lcs "abcd" "acbd" is either "abd" or "acd".

The package provides a simple, stupid and (most of all) slow implementation that needs, for inputs of length m and n, O(m+n) space and O((m+n)!) time in the worst case.

It also provides an implementation of the Hunt-Szymanski LCS algorithm, based on that in "String searching algorithms" by Graham A Stephen, ISBN 981021829X.

Given inputs xs and ys of length m and n respectively, where there are r pairs (x, y) where x is in xs, y is in ys and x == y, Hunt-Szymanski needs O(r+m+n) space and O((r+m+n)*log(m+n)) time. Thus this is O((m+n)^2) space and O((m+n)^2*log(m+n)) time in the worst case.

Depends on 2 packages:
Used by 1 package:
comments powered byDisqus