A collection of LCS algorithms in Python
Project description
LCS Algorithms Library
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
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lcs_algorithms-0.1.0.tar.gz.
File metadata
- Download URL: lcs_algorithms-0.1.0.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4870c53024bdd6d309a644bf5fc2282e2731fcb6fd2b7163dfb80e1ba379741
|
|
| MD5 |
fea02ec308551bf6fbb4c6f1334b8e5f
|
|
| BLAKE2b-256 |
c323ef51dddfe17e62d558e3f536d1e8cc0db2a543fc2376a83d566e5c29a497
|
File details
Details for the file lcs_algorithms-0.1.0-py3-none-any.whl.
File metadata
- Download URL: lcs_algorithms-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76d9de5d67ff91dc867919f44b0b3adba4ec3e694de60e6dc3c1acd0653abd90
|
|
| MD5 |
9a363c002203fb35a2ad2d546a0ae2f5
|
|
| BLAKE2b-256 |
e81f7234e24fcbaad8f1d7d7d3c3d6109450cd533b7f84ae9a8a70452197ef80
|