Skip to content

Commit fbe5af0

Browse files
committed
initial commit
1 parent ac080b0 commit fbe5af0

11 files changed

+382
-0
lines changed

1a.py

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
def check_pal(inp):
3+
word = inp.lower()
4+
5+
dict_count = {}
6+
7+
odd_flag = False
8+
9+
for i in range(len(word)):
10+
if word[i] != ' ':
11+
dict_count[word[i]] = 0
12+
13+
for c in word:
14+
if c != ' ':
15+
dict_count[c]+=1
16+
17+
for key in dict_count:
18+
if dict_count[key]%2 != 0:
19+
20+
if not odd_flag:
21+
odd_flag = True
22+
else:
23+
return False
24+
25+
return True
26+
27+
28+
inp = "azAZ"
29+
print(check_pal(inp))

bitwise-ors-of-subarrays.py

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution:
2+
def subarrayBitwiseORs(self, A: List[int]) -> int:
3+
ans =set()
4+
cur = set()
5+
6+
for i in A:
7+
buff = set()
8+
9+
buff.add(i)
10+
11+
for j in cur:
12+
buff.add(i|j)
13+
14+
cur = buff
15+
ans.update(cur)
16+
17+
return len(ans)

ent01.py

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
def one_edit_away(s1,s2):
2+
3+
if s1 == s2:
4+
return True
5+
6+
elif len(s1) == len(s2):
7+
return check_replace(s1,s2)
8+
9+
elif abs(len(s1)-len(s2)) == 1:
10+
if len(s1) > len(s2):
11+
return check_insert(s1,s2)
12+
else:
13+
return check_insert(s2,s1)
14+
15+
else:
16+
return False
17+
18+
def check_replace(s1,s2):
19+
counter = 0
20+
21+
for i in range(len(s1)):
22+
if s1[i] != s2[i]:
23+
counter+=1
24+
25+
if counter > 1:
26+
return False
27+
28+
return True
29+
30+
def check_insert(s1,s2):
31+
j=0
32+
for i in range(len(s1)):
33+
if i==len(s2)-1:
34+
return True
35+
36+
elif s1[i] != s2[j] :
37+
j-=1
38+
39+
j+=1
40+
41+
if i!=j:
42+
print(i,j)
43+
return False
44+
else:
45+
return True
46+

ent2b.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
def nth_to_last(head,k):
2+
3+
if head != None:
4+
p1 = head
5+
6+
for i in range(k):
7+
if head != None:
8+
head = head.next
9+
else:
10+
return
11+
12+
p2 = head
13+
14+
while p2 != None:
15+
p1 = p1.next
16+
p2 = p2.next
17+
18+
return p1

ent3a.py

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# How would you design a stack which, in addition to push and pop, has a function min which returns the minimum element? Push, pop and min should all operate in O(1) time.
2+
3+
class Stack:
4+
def __init__(self):
5+
# Your subclass must not access this attribute
6+
self._items = []
7+
self._mitems = []
8+
9+
def push(self, value):
10+
self._items.append(value)
11+
StackWithMin.check_min_push(self,value)
12+
13+
def pop(self):
14+
value = self._items.pop()
15+
StackWithMin.check_min_pop(self,value)
16+
return value
17+
18+
def peek(self):
19+
return self._items[-1]
20+
21+
def empty(self):
22+
return len(self) == 0
23+
24+
def __len__(self):
25+
return len(self._items)
26+
27+
class StackWithMin(Stack):
28+
def __init__(self):
29+
self._items = []
30+
self._mitems = []
31+
32+
def check_min_push(self, value):
33+
if self._mitems:
34+
if value <= self.minimum() :
35+
self._mitems.append(value)
36+
37+
else:
38+
self._mitems.append(value)
39+
40+
def check_min_pop(self, value):
41+
if self._mitems:
42+
if value<= self.minimum():
43+
self._mitems.pop()
44+
45+
def minimum(self):
46+
if self._mitems:
47+
return self._mitems[-1]

ent4a.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class TreeNode:
2+
def __init__(self, value=None, left=None, right=None, parent=None):
3+
self.value = value
4+
self.left = left
5+
self.right = right
6+
self.parent = parent
7+
8+
def in_order_succ(node: TreeNode) -> TreeNode:
9+
10+
if node is not None:
11+
if node.right is not None:
12+
buff = node.right
13+
14+
while buff.left is not None:
15+
buff = buff.left
16+
17+
return buff
18+
19+
elif node.parent is not None:
20+
if node.parent.value < node.value:
21+
buff = node.parent
22+
23+
while buff and buff.value < node.value:
24+
buff = buff.parent
25+
26+
return buff
27+
28+
else:
29+
return node.parent
30+
31+
else:
32+
return None
33+
34+
else:
35+
return None
36+

entrevista3.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# DO NOT CHANGE THIS CLASS
2+
class Stack:
3+
def __init__(self):
4+
self._items = []
5+
6+
def push(self, value):
7+
self._items.append(value)
8+
9+
def pop(self):
10+
return self._items.pop()
11+
12+
def peek(self):
13+
return self._items[-1]
14+
15+
def is_empty(self):
16+
return len(self) == 0
17+
18+
def __len__(self):
19+
return len(self._items)
20+
21+
22+
# IMPLEMENT YOUR SOLUTION HERE (DO NOT CHANGE THE ARGUMENTS)
23+
def sort_stack(stack):
24+
stack2 = Stack()
25+
26+
if stack.is_empty():
27+
return stack
28+
tmp = stack.pop()
29+
stack2.push(tmp)
30+
tmp = None
31+
32+
while True:
33+
if stack.__len__() == 0:
34+
break
35+
elif tmp == None:
36+
tmp = stack.pop()
37+
38+
if stack2.is_empty():
39+
stack2.push(tmp)
40+
tmp = None
41+
elif stack2.peek() > tmp:
42+
stack.push(stack2.pop())
43+
else:
44+
stack2.push(tmp)
45+
tmp = None
46+
47+
while stack2.__len__() != 0:
48+
stack.push(stack2.pop())
49+
50+
51+
return stack
52+

tests.py

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
from strtest import str_test
2+
3+
4+
class Node:
5+
def __init__(self, v=None, n=None):
6+
self.value = v
7+
self.next = n
8+
9+
10+
class TestCase(str_test.TestCaseWrapper):
11+
TIMEOUT = 1
12+
13+
def _make_list(self, l):
14+
nodes = []
15+
for v in l:
16+
n = Node(v)
17+
if nodes:
18+
nodes[-1].next = n
19+
nodes.append(n)
20+
return nodes
21+
22+
def _strlist(self, l):
23+
s = []
24+
while l:
25+
s.append(f'{l.value}')
26+
l = l.next
27+
return '->'.join(s) or 'Empty'
28+
29+
def _check(self, values, k):
30+
head = None
31+
expected = None
32+
if values:
33+
l = self._make_list(values)
34+
head = l[0]
35+
if k <= len(l):
36+
expected = l[-k]
37+
ret = self.function(head, k)
38+
e = f'Não funcionou para a lista "{self._strlist(head)}" e k={k}'
39+
self.assertEqual(expected, ret, msg=e)
40+
41+
def test_1(self):
42+
self._check(None, 10)
43+
44+
def test_2(self):
45+
self._check([1, 1, 1, 1, 1, 1], 3)
46+
47+
def test_3(self):
48+
self._check(range(1, 11), 1)
49+
50+
def test_4(self):
51+
self._check(range(1, 11), 10)
52+
53+
def test_5(self):
54+
self._check(range(1, 11), 20)
55+
56+
def test_6(self):
57+
self._check(range(1, 11), 2)
58+
59+
def test_7(self):
60+
self._check(range(1, 11), 3)
61+
62+
def test_8(self):
63+
self._check(range(1, 11), 4)
64+
65+
def test_9(self):
66+
self._check(range(1, 11), 5)
67+
68+
def test_10(self):
69+
self._check(range(1, 11), 6)

trapping-rain-water.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Solution:
2+
def trap(self, height: List[int]) -> int:
3+
left = 0
4+
left_pointer = left
5+
6+
right = len(height)-1
7+
right_pointer = right
8+
9+
vol = 0
10+
11+
while left_pointer < right_pointer :
12+
13+
if height[left_pointer] <= height[right_pointer]:
14+
left_pointer+=1
15+
16+
if height[left_pointer] <= height[left]:
17+
vol+= abs(height[left_pointer]-height[left])
18+
19+
else:
20+
left=left_pointer
21+
22+
else:
23+
right_pointer-=1
24+
25+
if height[right_pointer] <= height[right]:
26+
vol+= abs(height[right_pointer]-height[right])
27+
28+
else:
29+
right=right_pointer
30+
31+
return vol
32+
33+
34+

twosum.py

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def twoSum(self, nums: List[int], target: int) -> List[int]:
3+
4+
for i in range(len(nums)):
5+
for j in range(i+1, len(nums)):
6+
if nums[i] + nums[j] == target:
7+
return [i, j]

zigzag.py

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution:
2+
def convert(self, s: str, numRows: int) -> str:
3+
if numRows <=1:
4+
return s
5+
6+
row = 0
7+
fixed = ['']*(len(s))
8+
9+
for i in range(len(s)):
10+
fixed[row]+=s[i]
11+
12+
if row == numRows-1:
13+
flag = False
14+
15+
elif row == 0:
16+
flag = True
17+
18+
if flag:
19+
row += 1
20+
else:
21+
row -= 1
22+
23+
fixed = ''.join(fixed)
24+
25+
return fixed
26+
27+

0 commit comments

Comments
 (0)