From 2714bd7b08b0274516498028244a58eab2e0f35b Mon Sep 17 00:00:00 2001 From: yejin Date: Mon, 8 Sep 2025 16:28:03 +0900 Subject: [PATCH 1/3] longest substring without repeating characters solution --- .../devyejin.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 longest-substring-without-repeating-characters/devyejin.py diff --git a/longest-substring-without-repeating-characters/devyejin.py b/longest-substring-without-repeating-characters/devyejin.py new file mode 100644 index 000000000..f976e1971 --- /dev/null +++ b/longest-substring-without-repeating-characters/devyejin.py @@ -0,0 +1,14 @@ +# space complexity O(n), time complexity O(1) +class Solution: + def lengthOfLongestSubstring(self, s: str) -> int: + seen = {} + left = 0 + max_length = 0 + + for right, char in enumerate(s): + if char in seen and seen[char] >= left: + left = seen[char] + 1 + seen[char] = right + max_length = max(max_length, right - left + 1) + + return max_length From 8e332bc94da390946e16dae6cabbf2edaa55200c Mon Sep 17 00:00:00 2001 From: yejin Date: Sun, 14 Sep 2025 20:34:28 +0900 Subject: [PATCH 2/3] reverse-linked-list solution --- reverse-linked-list/devyejin.py | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 reverse-linked-list/devyejin.py diff --git a/reverse-linked-list/devyejin.py b/reverse-linked-list/devyejin.py new file mode 100644 index 000000000..e1958aabb --- /dev/null +++ b/reverse-linked-list/devyejin.py @@ -0,0 +1,42 @@ +# Definition for singly-linked list. +from typing import Optional + + +class ListNode: + def __init__(self, val=0, next=None): + self.val = val + self.next = next + +# time complexity O(n), space complexity O(1) +class Solution: + def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: + prev = None # 뒤집힌 리스트의 시작 노드 + curr = head # 현재 탐색 중인 노드 + + while curr: + temp = curr.next # 다음 노드 기억 + curr.next = prev + # 다음 포인터로 이동하기 전 현재노드를 이전 노드로 변경 + prev = curr + # 포인터 이동 + curr = temp + + return prev + +# time complexity O(n), space complexity O(n) +# class Solution: + # def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: + # stack = [] + # while head: + # stack.append(head) + # head = head.next + # + # dummy = ListNode() + # curr = dummy + # while stack: + # node = stack.pop() + # node.next = None + # curr.next = node + # curr = curr.next + # + # return dummy.next From 33f2a5ef1f18d483cce7b34722e8a1b1fd3a943d Mon Sep 17 00:00:00 2001 From: yejin Date: Sun, 14 Sep 2025 20:40:15 +0900 Subject: [PATCH 3/3] reverse-bits solution --- reverse-bits/devyejin.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 reverse-bits/devyejin.py diff --git a/reverse-bits/devyejin.py b/reverse-bits/devyejin.py new file mode 100644 index 000000000..1f152c639 --- /dev/null +++ b/reverse-bits/devyejin.py @@ -0,0 +1,6 @@ +# time complexity O(1) +class Solution: + def reverseBits(self, n: int) -> int: + binary = bin(n)[2:].zfill(32) + reversed_binary = binary[::-1] + return int(reversed_binary, 2)