diff --git a/longest-substring-without-repeating-characters/Chanz82.py b/longest-substring-without-repeating-characters/Chanz82.py new file mode 100644 index 0000000000..9ab9ae5cff --- /dev/null +++ b/longest-substring-without-repeating-characters/Chanz82.py @@ -0,0 +1,14 @@ +class Solution: + def lengthOfLongestSubstring(self, s: str) -> int: + left = 0 + max_len = 0 + visited = {} + + for right, ch in enumerate(s): + if ch in visited and visited[ch] >= left: + left = visited[ch] + 1 # 현재 윈도우 상에서 중복 문자가 발견되었기 때문에 윈도우를 중복 문자 이후로 옮김. + + visited[ch] = right + max_len = max(max_len, right - left + 1) + + return max_len diff --git a/reverse-linked-list/Chanz82.py b/reverse-linked-list/Chanz82.py new file mode 100644 index 0000000000..e4fc938828 --- /dev/null +++ b/reverse-linked-list/Chanz82.py @@ -0,0 +1,19 @@ +# Definition for singly-linked list. +# class ListNode: +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution: + def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: + dummy = ListNode() + dummy = head + prev = None + + while dummy: + nextNode = dummy.next + dummy.next = prev + prev = dummy + dummy = nextNode + + return prev +