Skip to content

Commit 6571286

Browse files
authored
Update subsequence_algorithms.py
1 parent 7043442 commit 6571286

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

dynamic_programming/subsequence_algorithms.py

+22-8
Original file line numberDiff line numberDiff line change
@@ -75,23 +75,37 @@ def longest_increasing_subsequence(array: list[int]) -> list[int]:
7575

7676

7777
# Longest Common Subsequence (LCS)
78-
def longest_common_subsequence(x: str, y: str) -> tuple[int, str]:
78+
def longest_common_subsequence(first_sequence: str, second_sequence: str):
7979
"""
80-
Finds the longest common subsequence between two strings and its length.
80+
Finds the longest common subsequence between two sequences (strings).
81+
Also returns the subsequence found.
8182
82-
Examples:
83+
Parameters
84+
----------
85+
first_sequence: str
86+
The first sequence (or string).
87+
88+
second_sequence: str
89+
The second sequence (or string).
90+
91+
Returns
92+
-------
93+
tuple
94+
- Length of the longest subsequence (int).
95+
- The longest common subsequence found (str).
96+
97+
Examples
98+
--------
8399
>>> longest_common_subsequence("programming", "gaming")
84100
(6, 'gaming')
85101
>>> longest_common_subsequence("physics", "smartphone")
86102
(2, 'ph')
87103
>>> longest_common_subsequence("computer", "food")
88104
(1, 'o')
89-
>>> longest_common_subsequence("", "abc")
90-
(0, '')
91-
>>> longest_common_subsequence("abc", "")
105+
>>> longest_common_subsequence("abc", "def")
92106
(0, '')
93-
>>> longest_common_subsequence("abcdef", "ace")
94-
(3, 'ace')
107+
>>> longest_common_subsequence("abc", "abc")
108+
(3, 'abc')
95109
"""
96110
m, n = len(x), len(y)
97111
dp = [[0] * (n + 1) for _ in range(m + 1)]

0 commit comments

Comments
 (0)