From aa3217cbb5b8a19a9efcd00a7e60bfa7f5a529cb Mon Sep 17 00:00:00 2001 From: SuperHotDogCat Date: Tue, 7 May 2024 19:46:53 +0900 Subject: [PATCH 1/6] phase1 --- arai60/subsets/phase1.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 arai60/subsets/phase1.py diff --git a/arai60/subsets/phase1.py b/arai60/subsets/phase1.py new file mode 100644 index 0000000..d8887f5 --- /dev/null +++ b/arai60/subsets/phase1.py @@ -0,0 +1,13 @@ +class Solution: + def subsets(self, nums: List[int]) -> List[List[int]]: + all_subsets = [] + def recursive_find_all_subsets(subsets_so_far, index): + if subsets_so_far not in all_subsets: + all_subsets.append(subsets_so_far.copy()) + if nums[index] not in subsets_so_far: + recursive_find_all_subsets(subsets_so_far + [nums[index]], index) + index += 1 + if index < len(nums): + recursive_find_all_subsets(subsets_so_far, index) + recursive_find_all_subsets([], 0) + return all_subsets \ No newline at end of file From e9a963c39f5fd3fb49e64586d3a5b28241ee8492 Mon Sep 17 00:00:00 2001 From: SuperHotDogCat Date: Tue, 7 May 2024 22:44:03 +0900 Subject: [PATCH 2/6] phase1 --- .../remove_duplicates_from_sorted_list_2/phase1.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 arai60/remove_duplicates_from_sorted_list_2/phase1.py diff --git a/arai60/remove_duplicates_from_sorted_list_2/phase1.py b/arai60/remove_duplicates_from_sorted_list_2/phase1.py new file mode 100644 index 0000000..ae13d99 --- /dev/null +++ b/arai60/remove_duplicates_from_sorted_list_2/phase1.py @@ -0,0 +1,14 @@ +class Solution: + def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]: + dummy_head = ListNode(0) + current_head = dummy_head + skip_number = None + while head: + if head.next and head.val != head.next.val and head.val != skip_number: + current_head.next = ListNode(head.val) + current_head = current_head.next + elif head.next == None and head.val != skip_number: + current_head.next = ListNode(head.val) + skip_number = head.val + head = head.next + return dummy_head.next \ No newline at end of file From a8e0b612eb0532281148fe0ed3ce1d9dd96eb90b Mon Sep 17 00:00:00 2001 From: SuperHotDogCat Date: Fri, 24 May 2024 01:21:41 +0900 Subject: [PATCH 3/6] phase1 --- arai60/is_subsequence/phase1.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 arai60/is_subsequence/phase1.py diff --git a/arai60/is_subsequence/phase1.py b/arai60/is_subsequence/phase1.py new file mode 100644 index 0000000..547eb87 --- /dev/null +++ b/arai60/is_subsequence/phase1.py @@ -0,0 +1,11 @@ +class Solution: + def isSubsequence(self, s: str, t: str) -> bool: + if len(s) == 0: + return True + cursor_of_s = 0 + for char_of_t in t: + if char_of_t == s[cursor_of_s]: + cursor_of_s += 1 + if cursor_of_s >= len(s): + return True + return False \ No newline at end of file From 248072ae856a7f87ef456124baf09a8403058b4d Mon Sep 17 00:00:00 2001 From: SuperHotDogCat Date: Fri, 24 May 2024 01:21:49 +0900 Subject: [PATCH 4/6] phase2 --- arai60/is_subsequence/phase2.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 arai60/is_subsequence/phase2.py diff --git a/arai60/is_subsequence/phase2.py b/arai60/is_subsequence/phase2.py new file mode 100644 index 0000000..264f895 --- /dev/null +++ b/arai60/is_subsequence/phase2.py @@ -0,0 +1,30 @@ +""" +Reference +go-to untrappedさん: https://github.com/goto-untrapped/Arai60/pull/19/files 正規表現の実装を一回はやってみます +shining-aiさん: https://github.com/shining-ai/leetcode/pull/57/files +昔読んだ自然言語処理の本で現在のポインターの指すところをポインターだとかカーソルだとか命名していたのでカーソルって命名している癖が抜けてないので修正 + + +問題は解けたが, なんだかDFAとかなんとか教育的なことを話しているぞ...? +https://news.ycombinator.com/item?id=37422355 +while文で回している人が多かったが, t_indexはどのみち1増えていくので, for文で実装する方針にした。 +""" +class Solution: + def isSubsequence(self, s: str, t: str) -> bool: + if len(s) == 0: + return True + s_index = 0 + for c in t: + if c == s[s_index]: + s_index += 1 + if s_index >= len(s): + return True + return False + +# 正規表現 +class Solution: + def isSubsequence(self, s: str, t: str) -> bool: + pattern = "" + for c in s: + pattern += ".*" + c + return re.match(pattern, t) != None \ No newline at end of file From 61cf6a5064bed8144558d2592ef7a5c1b49dc008 Mon Sep 17 00:00:00 2001 From: SuperHotDogCat Date: Fri, 24 May 2024 01:21:55 +0900 Subject: [PATCH 5/6] phase3 --- arai60/is_subsequence/phase3.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 arai60/is_subsequence/phase3.py diff --git a/arai60/is_subsequence/phase3.py b/arai60/is_subsequence/phase3.py new file mode 100644 index 0000000..5209128 --- /dev/null +++ b/arai60/is_subsequence/phase3.py @@ -0,0 +1,11 @@ +class Solution: + def isSubsequence(self, s: str, t: str) -> bool: + if len(s) == 0: + return True + s_index = 0 + for c in t: + if c == s[s_index]: + s_index += 1 + if s_index >= len(s): + return True + return False \ No newline at end of file From ec6e1c5347cd25a239bf9682aa75281a00b9987d Mon Sep 17 00:00:00 2001 From: SuperHotDogCat Date: Fri, 24 May 2024 01:24:10 +0900 Subject: [PATCH 6/6] Delete unnecessary files --- .../remove_duplicates_from_sorted_list_2/phase1.py | 14 -------------- arai60/subsets/phase1.py | 13 ------------- 2 files changed, 27 deletions(-) delete mode 100644 arai60/remove_duplicates_from_sorted_list_2/phase1.py delete mode 100644 arai60/subsets/phase1.py diff --git a/arai60/remove_duplicates_from_sorted_list_2/phase1.py b/arai60/remove_duplicates_from_sorted_list_2/phase1.py deleted file mode 100644 index ae13d99..0000000 --- a/arai60/remove_duplicates_from_sorted_list_2/phase1.py +++ /dev/null @@ -1,14 +0,0 @@ -class Solution: - def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]: - dummy_head = ListNode(0) - current_head = dummy_head - skip_number = None - while head: - if head.next and head.val != head.next.val and head.val != skip_number: - current_head.next = ListNode(head.val) - current_head = current_head.next - elif head.next == None and head.val != skip_number: - current_head.next = ListNode(head.val) - skip_number = head.val - head = head.next - return dummy_head.next \ No newline at end of file diff --git a/arai60/subsets/phase1.py b/arai60/subsets/phase1.py deleted file mode 100644 index d8887f5..0000000 --- a/arai60/subsets/phase1.py +++ /dev/null @@ -1,13 +0,0 @@ -class Solution: - def subsets(self, nums: List[int]) -> List[List[int]]: - all_subsets = [] - def recursive_find_all_subsets(subsets_so_far, index): - if subsets_so_far not in all_subsets: - all_subsets.append(subsets_so_far.copy()) - if nums[index] not in subsets_so_far: - recursive_find_all_subsets(subsets_so_far + [nums[index]], index) - index += 1 - if index < len(nums): - recursive_find_all_subsets(subsets_so_far, index) - recursive_find_all_subsets([], 0) - return all_subsets \ No newline at end of file