Загружаю тестовый файл

This commit is contained in:
ehermakov 2023-06-24 20:11:12 +03:00
parent 9c692ab7f3
commit 5c2a4d9be5
1 changed files with 60 additions and 0 deletions

60
find_second_max.py Executable file
View File

@ -0,0 +1,60 @@
def find_second_max(array):
# Проверяем входные данные
if array and len(array) > 0:
# Максимальное значение - первое значение
my_max = array[0]
# Второе по величине число пока не найдено
my_second_max = None
# Проходим все элементы массива
for i in array:
# Если текущий элемент массива больше максимального
if i > my_max:
# Бывшее до сих пор максимальное значение - становится вторым по величине
my_second_max = my_max
# Текущий элемент становится максимальным значением
my_max = i
# Если текущий элемент массива меньше максималььного
elif i < my_max:
# Если второе по величине значение еще не найдено
if my_second_max is None:
# Текущий элемент становится вторым по величине значением
my_second_max = i
# Если второе по величине значение уже определено
else:
# Если текущий элемент больше текущего второго по величине значения
if i > my_second_max:
# Текущий элемент становится вторым по величине значением
my_second_max = i
# Вариант когда текущий элемент равен минимальному значению, мы не рассматриваем,
# т.к. он никак не влияет на найденные значения
return my_second_max
# Если массив пустой или вообще не имеет значения
return None
#################################################
def verifier(test_name, actual, expected):
print(test_name)
if actual != expected:
print("=======> FAILED! <=======")
print(f"Got value <{actual}>")
print(f"Expected value is <{expected}>")
else:
print("PASSED")
print()
second_max_tests = [([1, 6, 3, 6, 54, 3, 6, 3, 1, 2, 8], 8),
([2, 2, 2, 2, 2, 2, 2, 2, 2], None),
([2, 2, 2, 2, 2, 2, 2, 2, 4], 2),
([], None),
([1, 0, -1], 0),
([4, -7, 6, 23, -5, 23, -4, 5, 7, 100], 23)]
for i in range(len(second_max_tests)):
verifier(f"Second max test {i+1}", find_second_max(second_max_tests[i][0]), second_max_tests[i][1])