From c1f18c4f19f206c0df5d8f0e1d81759e23347b41 Mon Sep 17 00:00:00 2001 From: Elias Yishak <42216813+eliasyishak@users.noreply.github.com> Date: Sat, 23 Nov 2024 12:48:47 -0500 Subject: [PATCH] Init --- .pylintrc | 2 ++ .vscode/settings.json | 6 +++++ 1861.py | 51 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 .pylintrc create mode 100644 .vscode/settings.json create mode 100644 1861.py diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..823be1d --- /dev/null +++ b/.pylintrc @@ -0,0 +1,2 @@ +[MESSAGES CONTROL] +disable=C0114,C0103,C0115,C0116 \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ea74cb2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "ruff.lint.ignore": [ + "C0114", + "E741" + ] +} \ No newline at end of file diff --git a/1861.py b/1861.py new file mode 100644 index 0000000..03ae1c3 --- /dev/null +++ b/1861.py @@ -0,0 +1,51 @@ +# https://leetcode.com/problems/rotating-the-box +from typing import List + + +class Solution: + def rotate_the_box(self, box: List[List[str]]) -> List[List[str]]: + + ROWS = len(box) + COLS = len(box[0]) + + for i in range(ROWS): + right = COLS - 1 + left = right - 1 + while right >= 0 and left >= 0: + + right_val = box[i][right] + left_val = box[i][left] + + # Ensure that the right spot is a valid spot we + # can swap a value with + if right_val != ".": + right -= 1 + left -= 1 + elif left_val == ".": + left -= 1 + elif left_val == "#": + box[i][right] = "#" + box[i][left] = "." + right -= 1 + left -= 1 + elif left_val == "*": + left -= 1 + right = left + + transposed_box = [[None for _ in range(ROWS)] for _ in range(COLS)] + for i in range(ROWS): + for j in range(COLS): + transposed_box[j][i] = box[i][j] + + rotated_box = [row[::-1] for row in transposed_box] + + return rotated_box + + +if __name__ == "__main__": + + test_case_1 = [["#", ".", ".", ".", "#"]] + test_case_2 = [["#", ".", "*", "."], ["#", "#", "*", "."]] + + cls = Solution() + cls.rotate_the_box(box=test_case_2)