Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 45d9f05

Browse files
Added linkedlist
1 parent 50372fb commit 45d9f05

File tree

1 file changed

+89
-6
lines changed

1 file changed

+89
-6
lines changed

round_1.py

Lines changed: 89 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,7 @@ def is_palindrome(x):
403403
for index in range(len(str(x)) // 2):
404404
if ((x // (pow(10, index))) % 10) != ((x // (pow(10, len(str(x)) - index - 1))) % 10):
405405
return False
406-
if index == (len(str(x)) // 2) - 1:
407-
return True
406+
return True
408407

409408

410409
print('\n#9. Palindrome Number:')
@@ -607,6 +606,17 @@ def remove_element_best(nums, val):
607606
print(remove_element_best(remove_element_best_nums, test_remove_element_val))
608607

609608

609+
# 28. Implement strStr()
610+
def str_str(haystack, needle):
611+
pass
612+
613+
614+
str_str_haystack = 'cabac'
615+
str_str_needle = 'aba'
616+
print('\n#28.Implement strStr():')
617+
print(str_str(str_str_haystack, str_str_needle))
618+
619+
610620
# 31. Next Permutation
611621
# 1, 2, 3 --> 1, 3, 2
612622
# 3, 2, 1 --> 1, 2, 3
@@ -1253,9 +1263,12 @@ def merge1(nums1, m, nums2, n):
12531263
merge_m = 3
12541264
merge_n = 1
12551265
merge1(merge_nums1, merge_m, merge_nums2, merge_n)
1266+
# print(get_insert_index(merge_nums, 6))
12561267

12571268

1258-
# print(get_insert_index(merge_nums, 6))
1269+
# 92. Reverse Linked List II
1270+
print('\n#92. Reverse Linked List II:')
1271+
print('See Leetcode')
12591272

12601273

12611274
# 95. Unique Binary Search Trees II
@@ -1491,10 +1504,31 @@ def is_palindrome(s):
14911504
return True
14921505

14931506

1507+
def is_palindrome_better(s):
1508+
length = len(s)
1509+
if length <= 1:
1510+
return True
1511+
low = 0
1512+
high = length - 1
1513+
while low <= high:
1514+
if not s[low].isalnum():
1515+
low += 1
1516+
elif not s[high].isalnum():
1517+
high -= 1
1518+
else:
1519+
if s[low].lower() != s[high].lower():
1520+
return False
1521+
else:
1522+
low += 1
1523+
high -= 1
1524+
return True
1525+
1526+
14941527
print('\n#125. Valid Palindrome:')
1495-
# is_palindrome_s = "A man, a plan, a canal: Panama"
1496-
is_palindrome_s = "race a car"
1528+
is_palindrome_s = "A man, a plan, a canal: Panama"
1529+
# is_palindrome_s = "race a car"
14971530
print(is_palindrome(is_palindrome_s))
1531+
print(is_palindrome_better(is_palindrome_s))
14981532

14991533

15001534
# 134. Gas Station
@@ -2146,10 +2180,20 @@ def __init__(self, x):
21462180

21472181

21482182
def reverse_list(head):
2149-
return head
2183+
if not head:
2184+
return None
2185+
curr = head
2186+
prev = None
2187+
while curr:
2188+
next_node = curr.next
2189+
curr.next = prev
2190+
prev = curr
2191+
curr = next_node
2192+
return prev
21502193

21512194

21522195
print('\n#206. Reverse Linked List:')
2196+
print('Done')
21532197

21542198

21552199
# 213. House Robber II
@@ -3019,6 +3063,45 @@ def power_of_three(n):
30193063
print(power_of_three(test_power_of_three))
30203064

30213065

3066+
# 334. Increasing Triplet Subsequence
3067+
# arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1
3068+
# [1, 2, 3, 4, 5] --> True
3069+
# [5, 4, 3, 2, 1] --> False
3070+
def increasing_triplet(nums):
3071+
if not nums:
3072+
return False
3073+
length = len(nums)
3074+
if length <= 2:
3075+
return False
3076+
low = 0
3077+
high = length - 1
3078+
for i in range(length):
3079+
if nums[i] <= nums[low]:
3080+
low = i
3081+
else:
3082+
break
3083+
for j in range(length - 1, -1, -1):
3084+
if nums[j] >= nums[high]:
3085+
high = j
3086+
else:
3087+
break
3088+
if low >= high:
3089+
return False
3090+
for k in range(low + 1, high):
3091+
if nums[low] <= nums[k] <= nums[high]:
3092+
return True
3093+
return False
3094+
3095+
3096+
# increasing_triplet_nums = [0, 1, 2, 3, 4]
3097+
# increasing_triplet_nums = [1, 5, 0, 3]
3098+
# increasing_triplet_nums = [5, 4, 5, 2, 1]
3099+
increasing_triplet_nums = [1, 2, -10, -8, -7]
3100+
print('\n#334. Increasing Triplet Subsequence:')
3101+
print(increasing_triplet(increasing_triplet_nums))
3102+
print('not done')
3103+
3104+
30223105
# 338. Counting Bits
30233106
# num = 0 or 1 or 2 or 3 or ...
30243107
# For every numbers i in the range 0<=i<=num,

0 commit comments

Comments
 (0)