@@ -75,23 +75,37 @@ def longest_increasing_subsequence(array: list[int]) -> list[int]:
75
75
76
76
77
77
# 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 ):
79
79
"""
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.
81
82
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
+ --------
83
99
>>> longest_common_subsequence("programming", "gaming")
84
100
(6, 'gaming')
85
101
>>> longest_common_subsequence("physics", "smartphone")
86
102
(2, 'ph')
87
103
>>> longest_common_subsequence("computer", "food")
88
104
(1, 'o')
89
- >>> longest_common_subsequence("", "abc")
90
- (0, '')
91
- >>> longest_common_subsequence("abc", "")
105
+ >>> longest_common_subsequence("abc", "def")
92
106
(0, '')
93
- >>> longest_common_subsequence("abcdef ", "ace ")
94
- (3, 'ace ')
107
+ >>> longest_common_subsequence("abc ", "abc ")
108
+ (3, 'abc ')
95
109
"""
96
110
m , n = len (x ), len (y )
97
111
dp = [[0 ] * (n + 1 ) for _ in range (m + 1 )]
0 commit comments