From 7e621c269f58605a18c9dc78e756c7995b6bca42 Mon Sep 17 00:00:00 2001 From: Nitin Pratap Singh <152788570+Nitin-Prata@users.noreply.github.com> Date: Thu, 10 Jul 2025 23:04:11 +0530 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9C=85=20Add=20doctests=20to=20string=20?= =?UTF-8?q?conversion=20functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- strings/min_cost_string_conversion.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/strings/min_cost_string_conversion.py b/strings/min_cost_string_conversion.py index 87eb5189e16a..d5c51285feb7 100644 --- a/strings/min_cost_string_conversion.py +++ b/strings/min_cost_string_conversion.py @@ -18,9 +18,12 @@ def compute_transform_tables( insert_cost: int, ) -> tuple[list[list[int]], list[list[str]]]: """ - Finds the most cost efficient sequence + Finds the most cost-efficient sequence for converting one string into another. + >>> compute_transform_tables("", "", 1, 2, 3, 3) + ([[0]], [['0']]) + >>> costs, operations = compute_transform_tables("cat", "cut", 1, 2, 3, 3) >>> costs[0][:4] [0, 3, 6, 9] @@ -30,10 +33,8 @@ def compute_transform_tables( ['0', 'Ic', 'Iu', 'It'] >>> operations[3][:4] ['Dt', 'Dt', 'Rtu', 'Ct'] - - >>> compute_transform_tables("", "", 1, 2, 3, 3) - ([[0]], [['0']]) """ + source_seq = list(source_string) destination_seq = list(destination_string) len_source_seq = len(source_seq) @@ -86,18 +87,13 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]: >>> assemble_transformation(ops, x, y) ['Cc', 'Rau', 'Ct'] - >>> ops1 = [['0']] - >>> x1 = len(ops1) - 1 - >>> y1 = len(ops1[0]) - 1 - >>> assemble_transformation(ops1, x1, y1) + >>> assemble_transformation([['0']], 0, 0) [] >>> ops2 = [['0', 'I1', 'I2', 'I3'], ... ['D1', 'C1', 'I2', 'I3'], ... ['D2', 'D2', 'R23', 'R23']] - >>> x2 = len(ops2) - 1 - >>> y2 = len(ops2[0]) - 1 - >>> assemble_transformation(ops2, x2, y2) + >>> assemble_transformation(ops2, 2, 3) ['C1', 'I2', 'R23'] """ if i == 0 and j == 0: From be1332dec15709d423607ffb47b2a4395d21b640 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 17:37:28 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- strings/min_cost_string_conversion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings/min_cost_string_conversion.py b/strings/min_cost_string_conversion.py index d5c51285feb7..24cd303f5c6f 100644 --- a/strings/min_cost_string_conversion.py +++ b/strings/min_cost_string_conversion.py @@ -34,7 +34,7 @@ def compute_transform_tables( >>> operations[3][:4] ['Dt', 'Dt', 'Rtu', 'Ct'] """ - + source_seq = list(source_string) destination_seq = list(destination_string) len_source_seq = len(source_seq) From 607630ba35e16d931f0565ebd72fe1b0b37a2dee Mon Sep 17 00:00:00 2001 From: Nitin Pratap Singh <152788570+Nitin-Prata@users.noreply.github.com> Date: Thu, 10 Jul 2025 23:35:48 +0530 Subject: [PATCH 3/3] fix: remove whitespace from blank line (ruff W293) --- strings/min_cost_string_conversion.py | 1 + 1 file changed, 1 insertion(+) diff --git a/strings/min_cost_string_conversion.py b/strings/min_cost_string_conversion.py index 24cd303f5c6f..cddc0495c895 100644 --- a/strings/min_cost_string_conversion.py +++ b/strings/min_cost_string_conversion.py @@ -96,6 +96,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]: >>> assemble_transformation(ops2, 2, 3) ['C1', 'I2', 'R23'] """ + if i == 0 and j == 0: return [] elif ops[i][j][0] in {"C", "R"}: