Skip to main content

LCS Algorithms Library

PyPI Version License Downloads Python Versions GitHub Stars Last Commit Open Issues

A Python library implementing multiple algorithms for computing the Longest Common Subsequence (LCS) between sequences (strings), including multi-sequence LCS.

Features

  • Dynamic Programming LCS
    • lcsdp(sequence1, sequence2) — Finds the LCS of two sequences using dynamic programming.
  • Multiple Sequence LCS (Dynamic Programming)
    • mlcsdp(sequences) — Finds the LCS among multiple sequences using dynamic programming.
  • Dominant Point Approach
    • mlcsdpa(sequences, Sigma) — Finds the multi-sequence LCS using the dominant point approach.
  • Parallel Algorithm
    • RAA(sequences, Sigma) — Parallel multi-sequence LCS computation.
  • Redundancy Reduced Dominant Point Approach
    • rrmlcs(sequences, Sigma) — Optimized multi-sequence LCS using redundancy reduction.
  • Pairwise Solution (1997)
    • TA(sequences) — Pairwise multi-sequence LCS based on a 1997 published method.
  • Tournament Based Approach
    • TBA(s1, s2) — Tournament method for LCS of two sequences.

Installation

pip install lcs

Usage

from lcs import lcsdp, mlcsdp, mlcsdpa, RAA, rrmlcs, TA, TBA

# Example: LCS of two sequences
s1 = "AGGTAB"
s2 = "GXTXAYB"
print(lcsdp(s1, s2))

# Example: Multiple sequences
sequences = ["AGGTAB", "GXTXAYB", "GTAB"]
print(mlcsdp(sequences))

2. mlcsdp(sequences)

Dynamic Programming-based Multiple Sequence LCS.

Example:

from lcs_algorithms import mlcsdp
seqs = ["ABCBDAB", "BDCAB", "BCAB"]
result = mlcsdp(seqs)
print(result)  # Output: "BCAB"

2. mlcsdp(sequences)

Dynamic Programming-based Multiple Sequence LCS.

Example:

from lcs_algorithms import mlcsdp
seqs = ["ABCBDAB", "BDCAB", "BCAB"]
result = mlcsdp(seqs)
print(result)  # Output: "BCAB"

2. mlcsdp(sequences)

Dynamic Programming-based Multiple Sequence LCS.

Example:

from lcs_algorithms import mlcsdp
seqs = ["ABCBDAB", "BDCAB", "BCAB"]
result = mlcsdp(seqs)
print(result)  # Output: "BCAB"

3. mlcsdpa(sequences, Sigma)

Dominant Point Approach for multiple sequence LCS. Sigma is the alphabet set of all possible characters in the sequences.

Example:

from lcs_algorithms import mlcsdpa
Sigma = {'A', 'B', 'C', 'D'}
seqs = ["ABCBDAB", "BDCAB", "BCAB"]
result = mlcsdpa(seqs, Sigma)
print(result)

4. RAA(sequences, Sigma)

Parallel Algorithm for multiple sequence LCS computation.

Example:

from lcs_algorithms import RAA
Sigma = {'A', 'B', 'C', 'D'}
seqs = ["ABCBDAB", "BDCAB", "BCAB"]
result = RAA(seqs, Sigma)
print(result)

5. rrmlcs(sequences, Sigma)

Redundancy-Reduced Dominant Point based algorithm.

Example:

from lcs_algorithms import rrmlcs
Sigma = {'A', 'B', 'C', 'D'}
seqs = ["ABCBDAB", "BDCAB", "BCAB"]
result = rrmlcs(seqs, Sigma)
print(result)

6. TA(sequences)

Pairwise LCS Solution (1997 algorithm).

Example:

from lcs_algorithms import TA
seqs = ["ABCBDAB", "BDCAB"]
result = TA(seqs)
print(result)

7. TBA(s1, s2)

Tournament-Based Algorithm for LCS of two sequences.

Example:

from lcs_algorithms import TBA
result = TBA("ABCBDAB", "BDCAB")
print(result)

Installation

You can install via:

pip install lcs_algorithms

or you can clone and install it via:

git clone https://github.com/zeshanalvi/lcs_algorithms.git
cd lcs_algorithms
pip install .

Parameters

  • sequence1, sequence2, s1, s2: Strings representing sequences.
  • sequences: List of strings (multiple sequences).
  • Sigma: Set of symbols (alphabet) used for dominant point and parallel algorithms.

License

This project is licensed under the MIT License.

Release files for LCS-Algorithms 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for LCS-Algorithms 0.1.3
File Size Uploaded
lcs_algorithms-0.1.3.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for LCS-Algorithms 0.1.3
File Interpreter ABI Platform
lcs_algorithms-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 17.2 kB

Release files / lcs_algorithms-0.1.3.tar.gz

Download URL lcs_algorithms-0.1.3.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d4425e14a49d7ec7c631b098bf7240bdb449d3f05dadc2e8eef21e3836c12dd3
BLAKE2b-256 checksum
How to use checksums
ab18839be39f0f46ea65f7f3bef714b693ced155c30699133da5501c12cde454
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / lcs_algorithms-0.1.3-py3-none-any.whl

Download URL lcs_algorithms-0.1.3-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad4ae69ae2789f25e1026a4c57c4101321eb22acb9e4cdf552f171f951515ef8
BLAKE2b-256 checksum
How to use checksums
fd065ff3d8c8a82516c3452e9b8e41998001bbafe7015561df3fba5b0a7895b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page