diff --git a/two_pointer/Valid_Palindrome_II.py b/two_pointer/Valid_Palindrome_II.py index fa169d9..574890b 100644 --- a/two_pointer/Valid_Palindrome_II.py +++ b/two_pointer/Valid_Palindrome_II.py @@ -1,11 +1,12 @@ # https://leetcode.com/problems/valid-palindrome-ii/ def valid_palindrome(s): start, end = 0, len(s) - 1 - left = left_delete(start,end) - right = right_delete(start,end) + left = left_delete(start, end) + right = right_delete(start, end) return left or right -def left_delete(start,end): + +def left_delete(start, end): c = 0 while start <= end: if c > 1: @@ -18,14 +19,15 @@ def left_delete(start,end): end -= 1 return True -def right_delete(start,end): + +def right_delete(start, end): c = 0 while start <= end: if c > 1: return False if s[start] != s[end]: c += 1 - end-= 1 + end -= 1 else: start += 1 end -= 1 @@ -36,4 +38,4 @@ def right_delete(start,end): # s = "abca" s = "tebbem" # s = "cbbcc" -print(valid_palindrome(s)) \ No newline at end of file +print(valid_palindrome(s)) diff --git a/two_pointer/linkListcycle.py b/two_pointer/linkListcycle.py index 641c336..081ae08 100644 --- a/two_pointer/linkListcycle.py +++ b/two_pointer/linkListcycle.py @@ -26,7 +26,7 @@ def cycle_check(self, head): if fast == slow: return True return False - + def cycle_check_medium(self, head): s = set() temp = head @@ -34,7 +34,7 @@ def cycle_check_medium(self, head): while temp: if temp in s: return f"tail connects to node index {c}" - c+=1 + c += 1 s.add(temp) temp = temp.next return "no cycle" @@ -66,7 +66,7 @@ def append_to_tail(self, val): self.head = node else: current_node = self.head - while current_node.next != None: + while current_node.next is not None: current_node = current_node.next current_node.next = node return self.head diff --git a/two_pointer/reverse_array.py b/two_pointer/reverse_array.py index 6036a6e..287dc85 100644 --- a/two_pointer/reverse_array.py +++ b/two_pointer/reverse_array.py @@ -1,11 +1,12 @@ # reverse array in place def reverse(nums): - start, end = 0, len(nums)-1 + start, end = 0, len(nums) - 1 while start < end: - nums[start],nums[end] = nums[end],nums[start] - start+=1 - end-= 1 + nums[start], nums[end] = nums[end], nums[start] + start += 1 + end -= 1 return nums -nums = [1,2,3,4,5] -print(reverse(nums)) \ No newline at end of file + +nums = [1, 2, 3, 4, 5] +print(reverse(nums)) diff --git a/two_pointer/reverse_string.py b/two_pointer/reverse_string.py index 4b09c8c..43ad86c 100644 --- a/two_pointer/reverse_string.py +++ b/two_pointer/reverse_string.py @@ -1,11 +1,12 @@ - def reverse_string(s): - start, end = 0,len(s)-1 + start, end = 0, len(s) - 1 while start < end: - s[start],s[end] = s[end],s[start] - start+=1 + s[start], s[end] = s[end], s[start] + start += 1 end -= 1 return s -s = ["h","e","l","l","o"] -print(reverse_string(s)) \ No newline at end of file + + +s = ["h", "e", "l", "l", "o"] +print(reverse_string(s)) diff --git a/two_pointer/reverse_string_II.py b/two_pointer/reverse_string_II.py index a5e6c34..9bb11f6 100644 --- a/two_pointer/reverse_string_II.py +++ b/two_pointer/reverse_string_II.py @@ -1,25 +1,26 @@ # https://leetcode.com/problems/reverse-string-ii/ -def reverse_II(s,k): +def reverse_II(s, k): if k > len(s): return s if len(s) == k: return s[::-1] - start,end = 0,len(s)-1 + start, end = 0, len(s) - 1 s = list(s) while start < end: - st, en = start,(start+k)-1 - print("==",st,en,len(s[st:en])) + st, en = start, (start + k) - 1 + print("==", st, en, len(s[st:en])) while st < en: - print("before",s[st],s[en]) - s[st],s[en] = s[en],s[st] + print("before", s[st], s[en]) + s[st], s[en] = s[en], s[st] print("after", s[st], s[en]) - st+=1 - en-=1 - print(start,start+k) - start += 2*k + st += 1 + en -= 1 + print(start, start + k) + start += 2 * k return "".join(s) + # s = "abcdefg" # k = 8 # s = "abcd" @@ -28,4 +29,4 @@ def reverse_II(s,k): # k = 3 s = "hyzqyljrnigxvdtneasepfahmtyhlohwxmkqcdfehybknvdmfrfvtbsovjbdhevlfxpdaovjgunjqlimjkfnqcqnajmebeddqsgl" k = 39 -print(reverse_II(s,k)) \ No newline at end of file +print(reverse_II(s, k)) diff --git a/two_pointer/sorted_square.py b/two_pointer/sorted_square.py index cf39cc6..fff4cd0 100644 --- a/two_pointer/sorted_square.py +++ b/two_pointer/sorted_square.py @@ -7,7 +7,7 @@ def square_sorted(nums): start, end = 0, n-1 res = [0]*n index = n-1 - while end >=0 and start >= 0: + while end >= 0 and start >= 0: if abs(nums[start]) > abs(nums[end]): res[index] = nums[start]*nums[start] start += 1 diff --git a/two_pointer/valid_palindrome.py b/two_pointer/valid_palindrome.py index b632d3e..d0548ea 100644 --- a/two_pointer/valid_palindrome.py +++ b/two_pointer/valid_palindrome.py @@ -1,6 +1,6 @@ # -def valid_palindrom(s): +def valid_palindrome(s): s = s.lower() arr = [x for x in s if x.isalnum()] start, end = 0, len(arr) - 1 @@ -8,8 +8,9 @@ def valid_palindrom(s): if arr[start].isalnum() and arr[end].isalnum(): if arr[start].lower() != arr[end].lower(): return False - start+=1 - end-=1 + start += 1 + end -= 1 return True -print(valid_palindrom("A man, a plan, a canal: Panama")) \ No newline at end of file + +print(valid_palindrome("A man, a plan, a canal: Panama"))