✨ Finishing 3 elements
This commit is contained in:
parent
10190b0d23
commit
02a38e8d51
35
Storage/stick-sawing.py
Normal file
35
Storage/stick-sawing.py
Normal file
@ -0,0 +1,35 @@
|
||||
def checkio(number):
|
||||
middle = number // 2
|
||||
tri_nums = []
|
||||
i = 1
|
||||
current = 1
|
||||
while current <= middle:
|
||||
current = i * (i + 1) / 2
|
||||
tri_nums.append(int(current))
|
||||
i += 1
|
||||
i = 0
|
||||
list_len = len(tri_nums)
|
||||
for num in tri_nums:
|
||||
j = i
|
||||
current = [num]
|
||||
while sum(current) < number:
|
||||
j += 1
|
||||
if j >= list_len:
|
||||
break
|
||||
current.append(tri_nums[j])
|
||||
|
||||
if sum(current) == number:
|
||||
return current
|
||||
|
||||
i += 1
|
||||
|
||||
return []
|
||||
|
||||
|
||||
# These "asserts" using only for self-checking and not necessary for auto-testing
|
||||
if __name__ == '__main__':
|
||||
assert checkio(64) == [15, 21, 28], "1st example"
|
||||
assert checkio(371) == [36, 45, 55, 66, 78, 91], "1st example"
|
||||
assert checkio(225) == [105, 120], "1st example"
|
||||
assert checkio(10) == [1, 3, 6], "10"
|
||||
assert checkio(882) == [], "1st example"
|
31
Storage/weak-point.py
Normal file
31
Storage/weak-point.py
Normal file
@ -0,0 +1,31 @@
|
||||
def calculate_line_sum(matrix):
|
||||
min_sum = 10000
|
||||
current_line_index = 0
|
||||
i = 0
|
||||
for line in matrix:
|
||||
current_line_index = i if min_sum > sum(line) else current_line_index
|
||||
min_sum = sum(line) if min_sum > sum(line) else min_sum
|
||||
i += 1
|
||||
return current_line_index
|
||||
|
||||
|
||||
def weak_point(matrix):
|
||||
return calculate_line_sum(matrix), calculate_line_sum(list(zip(*matrix[::-1]))) # [0, 0]
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# These "asserts" using only for self-checking and not necessary for auto-testing
|
||||
assert isinstance(weak_point([[1]]), (list, tuple)), "The result should be a list or a tuple"
|
||||
assert list(weak_point([[7, 2, 7, 2, 8],
|
||||
[2, 9, 4, 1, 7],
|
||||
[3, 8, 6, 2, 4],
|
||||
[2, 5, 2, 9, 1],
|
||||
[6, 6, 5, 4, 5]])) == [3, 3], "Example"
|
||||
assert list(weak_point([[7, 2, 4, 2, 8],
|
||||
[2, 8, 1, 1, 7],
|
||||
[3, 8, 6, 2, 4],
|
||||
[2, 5, 2, 9, 1],
|
||||
[6, 6, 5, 4, 5]])) == [1, 2], "Two weak point"
|
||||
assert list(weak_point([[1, 1, 1],
|
||||
[1, 1, 1],
|
||||
[1, 1, 1]])) == [0, 0], "Top left"
|
24
Storage/word-pattern.py
Normal file
24
Storage/word-pattern.py
Normal file
@ -0,0 +1,24 @@
|
||||
def check_command(pattern, command):
|
||||
text_length = len(command)
|
||||
binary = "{0:b}".format(pattern).zfill(text_length)
|
||||
if len(binary) > text_length:
|
||||
return False
|
||||
for i, char in enumerate(command):
|
||||
if char.isnumeric() and binary[i] == "1":
|
||||
return False
|
||||
if char.isalpha() and binary[i] == "0":
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# These "asserts" using only for self-checking and not necessary for auto-testing
|
||||
assert check_command(42, "12a0b3e4") == True, "42 is the answer"
|
||||
assert check_command(101, "ab23b4zz") == False, "one hundred plus one"
|
||||
assert check_command(0, "478103487120470129") == True, "Any number"
|
||||
assert check_command(127, "Checkio") == True, "Uppercase"
|
||||
assert check_command(7, "Hello") == False, "Only full match"
|
||||
assert check_command(8, "a") == False, "Too short command"
|
||||
assert check_command(5, "H2O") == True, "Water"
|
||||
assert check_command(42, "C2H5OH") == False, "Yep, this is not the Answer"
|
Loading…
Reference in New Issue
Block a user