Instruction:
Дан шаблон функции(ий) с описанием работы этой функции в качестве условия задачи. Допишите программу
{function}

def minPath(grid, k):
    """Дана сетка с N строками и N столбцами (N >= 2) и положительное целое число k. Каждая ячейка сетки содержит значение. Каждое целое число в диапазоне [1, N * N] включительно появляется в ячейках сетки ровно один раз.
Вам нужно найти минимальный путь длины k в сетке. Вы можете начать с любой ячейки, и на каждом шаге вы можете переходить к любой из соседних ячеек, другими словами, вы можете перейти к ячейкам, которые имеют общий край с вашей текущей ячейкой.
Обратите внимание, что путь длиной k означает посещение ровно k ячеек (не обязательно различных).
    Вы НЕ МОЖЕТЕ выйти из сетки.
    Путь A (длины k) считается меньшим, чем путь B (длины k), если после составления упорядоченных списков значений в ячейках, через которые проходят A и B (назовем их lst_A и lst_B), lst_A лексикографически меньше, чем lst_B, другими словами, существует целый индекс i (1 <= i <= k) такой, что lst_A[i] < lst_B[i] и для любого j (1 <= j < i) имеем lst_A[ j] = lst_B[j].
    Гарантируется, что ответ единственный.
    Верните упорядоченный список значений в ячейках, через которые проходит минимальный путь.
    Примеры:
    Input: grid = [ [1,2,3], [4,5,6], [7,8,9]], k = 3
    Output: [1, 2, 1]

    Input: grid = [ [5,9,3], [4,1,6], [7,8,2]], k = 1
    Output: [1]
    """

    N = len(grid)
    x, y = 0, 0
    for i in range(N):
        for j in range(N):
            if grid[i][j] == 1:
                x, y = i, j
    mn = N * N
    if x > 0: mn = min(mn, grid[x - 1][y])
    if x < N - 1: mn = min(mn, grid[x + 1][y])
    if y > 0: mn = min(mn, grid[x][y - 1])
    if y < N - 1: mn = min(mn, grid[x][y + 1])
    return [1 if i % 2 == 0 else mn for i in range(k)]


Instruction:
Реши задачу по программированию
{function}

def tri(n):
    """Последовательность Фибоначчи известна всем, она глубоко изучалась математиками в последние пару столетий. Однако люди не знают последовательности Трибоначчи.
Последовательность Трибоначчи задается рекуррентно:
    tri(1) = 3
    tri(n) = 1 + n / 2, если n is четное.
    tri(n) =  tri(n - 1) + tri(n - 2) + tri(n + 1), если n нечетное.
    Например:
    tri(2) = 1 + (2 / 2) = 2
    tri(4) = 3
    tri(3) = tri(2) + tri(1) + tri(4) = 2 + 3 + 3 = 8
    Вам дано неотрицательное целое число n, вам нужно вернуть список первых n + 1 чисел последовательности Трибоначчи.
    Примеры:
    tri(3) = [1, 3, 2, 8]
    """

    if n == 0: return [1]
    if n == 1: return [1, 3]
    ans = [1, 3]
    for i in range(2, n + 1):
        if i % 2 == 0:
            ans.append(1 + i / 2)
        else:
            ans.append(ans[-1] + ans[-2] + 1 + (i + 1) / 2)
    return ans


Instruction:
Реализуй функцию(ии) на языке Python
{function}

def digits(n):
    """Дано положительное целое число n, верните произведение нечетных цифр числа.
Верните 0, если все цифры четные.
    Примеры:
    digits(1)  == 1
    digits(4)  == 0
    digits(235) == 15
    """

    has_odd, prod = False, 1
    for ch in str(n):
        if int(ch) % 2 == 1:
            has_odd = True
            prod *= int(ch)
    return 0 if not has_odd else prod


Instruction:
Напишите программу по строке документации
{function}

def is_nested(string):

    """Создайте функцию, которая принимает на вход строку, содержащую только квадратные скобки. Функция должна возвращать значение True тогда и только тогда, когда существует правильная подпоследовательность скобок, в которую вложена хотя бы одна скобка.
    Примеры:
    is_nested('[[]]') ➞ True
    is_nested('[]]]]]]][[[[[]') ➞ False
    is_nested('[][]') ➞ False
    is_nested('[]') ➞ False
    is_nested('[[][]]') ➞ True
    is_nested('[[]][[') ➞ True
    """

    for i in range(len(string)):
        if string[i] == "]": continue
        cnt, max_nest = 0, 0
        for j in range(i, len(string)):
            if string[j] == "[":
                cnt += 1
            else:
                cnt -= 1
            max_nest = max(max_nest, cnt)
            if cnt == 0:
                if max_nest >= 2:
                    return True
                break
    return False


Instruction:
Необходимо реализовать логику на языке Python для следующей программы
{function}

def sum_squares(lst):
    """Вам дан список чисел.
    Вам нужно вернуть сумму квадратов чисел из данного списка, сначала округлив каждый элемент в списке в большую сторону int(Ceiling).
    Примеры:
    Для lst = [1,2,3] ответ должен быть 14
    Для lst = [1,4,9] ответ должен быть 98
    Для lst = [1,3,5,7] ответ должен быть 84
    Для lst = [1.4,4.2,0] ответ должен быть 29
    Для lst = [-2.4,1,1] ответ должен быть 6
    """

    import math
    return sum(map(lambda x: math.ceil(x) ** 2, lst))


Instruction:
Допишите код на языке Python в соответствии с условием, приведенным в описании
{function}

def check_if_last_char_is_a_letter(txt):
    """ Создайте функцию, которая возвращает True, если последний символ данной строки является буквенным символом и не является частью слова, и False в противном случае.
    Примечание: «слово» — это группа символов, разделенных пробелом.
    Примеры:
    check_if_last_char_is_a_letter('apple pie') ➞ False
    check_if_last_char_is_a_letter('apple pi e') ➞ True
    check_if_last_char_is_a_letter('apple pi e ') ➞ False
    check_if_last_char_is_a_letter('') ➞ False
    """

[{'txt': 'Pumpkin pi e'}, {'txt': 'Pumpkin pie!'}, {'txt': 'pUMPKIN PIE'}, {'txt': '!'}, {'txt': 'aaaaa A'}, {'txt': 'aaaaa 1'}, {'txt': '12'}, {'txt': 'apple pie!'}, {'txt': 'blueberry muffin!'}, {'txt': 'cake?'}]

    if len(txt) == 0: return False
    if len(txt) == 1: return txt.isalpha()
    return txt[-1].isalpha() and txt[-2] == " "


Instruction:
Дано описание функции, напиши программу на языке Python
{function}

def can_arrange(arr):
    """Создайте функцию, которая возвращает наибольший индекс элемента, который не больше или равен элементу, непосредственно предшествующему ему. Если такого элемента не существует, верните -1. Данный массив не содержит повторяющихся значений.
    Примеры:
    can_arrange([1,2,4,3,5]) = 3
    can_arrange([1,2,3]) = -1
    """

    for i in range(len(arr) - 1, 0, -1):
        if not (arr[i] >= arr[i - 1]):
            return i
    return -1


Instruction:
На вход подается функция(ии) с описанием в виде строки docstring. В соответствии с описанием вам необходимо реализовать функцию(ии)
{function}

def largest_smallest_integers(lst):
    """Создайте функцию, возвращающую кортеж (a, b), где «a» — наибольшее из отрицательных целых чисел, «b» — наименьшее из положительных целых чисел в списке.
Если нет отрицательных или положительных целых чисел, верните их как None.
    Примеры:
    largest_smallest_integers([2, 4, 1, 3, 5, 7]) == (None, 1)
    largest_smallest_integers([]) == (None, None)
    largest_smallest_integers([0]) == (None, None)
    """

    neg = list(filter(lambda x: x < 0, lst))
    pos = list(filter(lambda x: x > 0, lst))
    return None if neg == [] else max(neg), None if pos == [] else min(pos)


Instruction:
По данному условию с фиксированной шапкой функции(ий) напиши программу
{function}

def compare_one(a, b):
    """Создайте функцию, которая может принимать на вход целые числа, числа с плавающей запятой или строки, представляющие действительные числа, и возвращает наибольшую переменную в заданном типе переменной.
    Верните None, если значения равны.
    Примечание. Если действительное число представлено в виде строки, плавающей точкой может быть . или ,
    Примеры:
    compare_one(1, 2.5) ➞ 2.5
    compare_one(1, '2,3') ➞ '2,3'
    compare_one('5,1', '6') ➞ '6'
    compare_one('1', 1) ➞ None
    """

    num_a = float(str(a).replace(",", "."))
    num_b = float(str(b).replace(",", "."))
    if num_a == num_b:
        return None
    return a if num_a > num_b else b


Instruction:
Необходимо написать код по условию из строковой переменной документации, следующей после функции(ий)
{function}

def is_equal_to_sum_even(n):
    """Оцените, может ли данное число n быть записано как сумма ровно 4 положительных четных чисел
    Примеры:
    is_equal_to_sum_even(4) == False
    is_equal_to_sum_even(6) == False
    is_equal_to_sum_even(8) == True
    """


Instruction:
Дан шаблон функции(ий) с описанием работы этой функции в качестве условия задачи. Допишите программу
{function}

def special_factorial(n):
    """Бразильский факториал определяется как:
    brazilian_factorial(n) = n! * (n-1)! * (n-2)! * ... * 1! где n > 0
    Примеры:
    special_factorial(4)
    288
    Функция получает на вход целое число и должна вернуть специальный факториал этого целого числа.
    """

    fac, ans = 1, 1
    for i in range(2, n + 1):
        fac *= i
        ans *= fac
    return ans


Instruction:
Реши задачу по программированию
{function}

def fix_spaces(text):
    """Дана строка text, замените все пробелы в ней нижними подчеркиваниями, а если строка содержит более двух последовательных пробелов, замените все последовательные пробелы на -
    Примеры:
    fix_spaces('Example') == 'Example'
    fix_spaces('Example 1') == 'Example_1'
    fix_spaces(' Example 2') == '_Example_2'
    fix_spaces(' Example   3') == '_Example-3'
    """

[{'text': 'Hello,   world!'}, {'text': 'happy 123'}, {'text': 'Hey    there!'}, {'text': '  spaces  every  where  '}, {'text': 'NoSpacesHere'}, {'text': 'This is  a  test'}, {'text': 'Testing     1  2   3'}, {'text': 'Hello World'}, {'text': 'Hello   World'}, {'text': '   Hello World'}]

    ans = text
    for i in range(len(text), 2, -1):
        ans = ans.replace(" " * i, "-")
    return ans.replace(" ", "_")


Instruction:
Реализуй функцию(ии) на языке Python
{function}

def file_name_check(file_name):
    """Создайте функцию, которая принимает на вход строку, представляющую имя файла, и возвращает «Yes», если имя файла валидно, и возвращает «No» в противном случае.
    Имя файла считается валидным тогда и только тогда, когда выполняются все условия:
    - В имени файла не должно быть более трех цифр (0–9).
    - Имя файла содержит ровно одну точку '.'
    - Подстрока перед точкой не должна быть пустой и должна начинаться с буквы латинского алфавита ('a'-'z' и 'A'-'Z').
    - Подстрока после точки должна быть равна одному из элементов списка: ['txt', 'exe', 'dll']
    Примеры:
    file_name_check('example.txt') # => 'Yes'
    file_name_check('1example.dll') # => 'No' (имя должно начинаться с буквы латинского алфавита)
    """

[{'file_name': 'example.py'}, {'file_name': 'my.docx'}, {'file_name': 'hello world.exe'}, {'file_name': 'alice.123.txt'}, {'file_name': 'abc123def.exe'}, {'file_name': '1script.bat'}, {'file_name': 'validfile.txt'}, {'file_name': '.exe'}, {'file_name': '123.txt'}, {'file_name': 'file.doc'}]

    if len(list(filter(lambda ch: ch.isdigit(), file_name))) > 3:
        return "No"
    f_list = file_name.split(".")
    if len(f_list) != 2: return "No"
    if len(f_list[0]) == 0: return "No"
    if not f_list[0][0].isalpha(): return "No"
    if f_list[1] not in ["txt", "exe", "dll"]: return "No"
    return "Yes"


Instruction:
Напишите программу по строке документации
{function}

def sum_squares(lst):
    """Эта функция принимает на вход список целых чисел. Для всех элементов в списке функция возводит в квадрат число, если его индекс кратен 3, и возводит в куб число, если его индекс кратен 4, и не кратен 3. Функция не должна изменять элементы в списке, индексы которого не кратны 3 или 4. Функция должна вернуть сумму всех элементов.
    Примеры:
    Для lst = [1,2,3] ответ должен быть 6
    Для lst = []  ответ должен быть 0
    Для lst = [-1,-5,2,-1,-5]  ответ должен быть -126
    """

    ans = 0
    for i, num in enumerate(lst):
        if i % 3 == 0:
            ans += num ** 2
        elif i % 4 == 0:
            ans += num ** 3
        else:
            ans += num
    return ans


Instruction:
Необходимо реализовать логику на языке Python для следующей программы
{function}

def words_in_sentence(sentence):
    """Вам дана строка, представляющая предложение, предложение содержит несколько слов, разделенных пробелом, вы должны вернуть строку, содержащую слова из исходного предложения, длина которых равна простым числам, порядок слов в новой строке должен быть таким же, как исходный.
    Примеры:
    Input: sentence = 'This is a test'
        Output: 'is'
    Input: sentence = 'lets go for swimming'
        Output: 'go for'
    Ограничения:
        * 1 <= len(sentence) <= 100
        * предложение содержит только буквы
    """

[{'sentence': 'cats and dogs'}, {'sentence': 'I am a developer'}, {'sentence': 'elephants are huge'}, {'sentence': 'the quick brown fox jumps over the lazy dog'}, {'sentence': 'this code challenge is tricky'}, {'sentence': 'Python programming is fun'}, {'sentence': 'mathematics can be easy'}, {'sentence': 'writing clean code is important'}, {'sentence': 'I love eating pizza'}, {'sentence': 'quick sort algorithm is efficient'}]

    def is_prime(a):
        return not (a < 2 or any(a % x == 0 for x in range(2, int(a ** 0.5) + 1)))
    return " ".join(list(filter(lambda word: is_prime(len(word)), sentence.split(" "))))


Instruction:
Допишите код на языке Python в соответствии с условием, приведенным в описании
{function}

def simplify(x, n):
    """Ваша задача — реализовать функцию, которая упростит выражение x*n. Функция возвращает True, если x * n равно целому числу, и False в противном случае. И x и n являются строковым представлением дроби и имеют следующий формат:<числитель>/<знаменатель>, где и числитель, и знаменатель — положительные целые числа.
Вы можете предположить, что x и n являются допустимыми дробями и не имеют нуля в знаменателе.
    Примеры:
    simplify('1/5', '5/1') = True
    simplify('1/6', '2/1') = False
    simplify('7/10', '10/2') = False
    """


Instruction:
Дано описание функции, напиши программу на языке Python
{function}

def order_by_points(nums):
    """Напишите функцию, которая сортирует заданный список целых чисел в порядке возрастания суммы цифр числа.
Примечание: если есть несколько элементов с одинаковой суммой цифр, упорядочите элементы в соответствии с индексами исходного списка.
    Примеры:
    order_by_points([1, 11, -1, -11, -12]) == [-1, -11, 1, -12, 11]
    order_by_points([]) == []
    """

    def weight(x):
        x_list = list(str(x))
        if x_list[0] == "-":
            x_list = x_list[1:]
            x_list = list(map(int, x_list))
            x_list[0] = -x_list[0]
        else:
            x_list = list(map(int, x_list))
        return sum(x_list)
    return sorted(nums, key=weight)


Instruction:
На вход подается функция(ии) с описанием в виде строки docstring. В соответствии с описанием вам необходимо реализовать функцию(ии)
{function}

def specialFilter(nums):
    """Напишите функцию, которая принимает на вход массив чисел и возвращает количество таких элементов в массиве, которые больше 10 и при этом первая и последняя цифры числа нечетны (1, 3, 5, 7, 9).
    Примеры:
    specialFilter([15, -73, 14, -15]) => 1
    specialFilter([33, -2, -3, 45, 21, 109]) => 2
    """

    ans, odd = 0, ["1", "3", "5", "7", "9"]
    for num in nums:
        if num > 10 and str(num)[0] in odd and str(num)[-1] in odd:
            ans += 1
    return ans


Instruction:
По данному условию с фиксированной шапкой функции(ий) напиши программу
{function}

def get_max_triples(n):
    """Вам дано целое положительное число n. Вам необходимо создать целочисленный массив a длины n.
Для каждого i (1 ≤ i ≤ n) значение a[i] = i * i - i + 1.
Верните количество таких троек (a[i], a[j], a[k]) переменной a, где i < j < k и a[i] + a[j] + a[k] кратно 3.
    Примеры:
        Input: n = 5
        Output: 1
        Объяснение:
        a = [1, 3, 7, 13, 21]
        Единственная допустимая тройка — это (1, 7, 13).
    """

    if n <= 2: return False
    one_cnt = 1 + (n - 2) // 3 * 2 + (n - 2) % 3
    zero_cnt = n - one_cnt
    return one_cnt * (one_cnt - 1) * (one_cnt - 2) // 6 + zero_cnt * (zero_cnt - 1) * (zero_cnt - 2) // 6


Instruction:
Необходимо написать код по условию из строковой переменной документации, следующей после функции(ий)
{function}

def bf(planet1, planet2):
    """В нашей Солнечной системе восемь планет: ближайшая к Солнцу — Меркурий, следующая — Венера, затем Земля, Марс, Юпитер, Сатурн, Уран, Нептун. Напишите функцию, которая принимает на вход названия двух планет в виде строк «planet1» и «planet2».
Функция должна возвращать кортеж, содержащий все планеты, орбиты которых расположены между орбитой planet1 и орбитой planet2, отсортированные по приближенности к Солнцу.
Функция должна возвращать пустой кортеж, если planet1 или planet2 не являются правильными именами планет.
    Примеры:
        bf('Jupiter', 'Neptune') ==> ('Saturn', 'Uranus')
        bf('Earth', 'Mercury') ==> ('Venus')
        bf('Mercury', 'Uranus') ==> ('Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn')
    """

[{'planet1': 'Neptune', 'planet2': 'Mercury'}, {'planet1': 'Jupiter', 'planet2': 'Mars'}, {'planet1': 'Mercury', 'planet2': 'Saturn'}, {'planet1': 'Pluto', 'planet2': 'Mars'}, {'planet1': 'Mercury', 'planet2': 'Venus'}, {'planet1': 'Neptune', 'planet2': 'Saturn'}, {'planet1': 'Earth', 'planet2': 'Neptune'}, {'planet1': 'Uranus', 'planet2': 'Jupiter'}, {'planet1': 'Mercury', 'planet2': 'Neptune'}, {'planet1': 'Venus', 'planet2': 'Mars'}]

['Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus']

['Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus']

    planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
    if planet1 not in planets or planet2 not in planets: return tuple()
    i1, i2 = planets.index(planet1), planets.index(planet2)
    if i1 > i2: i1, i2 = i2, i1
    return tuple(planets[i1 + 1 : i2])


Instruction:
Дан шаблон функции(ий) с описанием работы этой функции в качестве условия задачи. Допишите программу
{function}

def sorted_list_sum(lst):
    """Напишите функцию, которая принимает список слов в качестве параметра, удаляет из него строки нечетной длины и возвращает полученный список в отсортированном порядке.
Список lst всегда представляет собой список слов, а не массив чисел, и может содержать дубликаты.
Порядок списка должен быть возрастающим по длине каждого слова, и вы должны вернуть список, отсортированный по этому правилу.
Если два слова имеют одинаковую длину, отсортируйте список в алфавитном порядке.

    Примеры:
        list_sort(['aa', 'a', 'aaa']) => ['aa']
        list_sort(['ab', 'a', 'aaa', 'cd']) => ['ab', 'cd']
    """

[{'lst': ['programming', 'python', 'java', 'ruby']}, {'lst': ['apple', 'orange', 'banana', 'grapefruit']}, {'lst': ['abcd', 'efgh', 'ijkl', 'mnop']}, {'lst': ['hello', 'world', 'this', 'is', 'a', 'test']}, {'lst': ['dog', 'cat', 'bird', 'fish', 'lizard']}, {'lst': ['aaaa', 'bb', 'cccc', 'ddd']}, {'lst': ['the', 'quick', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']}, {'lst': ['python', 'is', 'a', 'popular', 'language']}, {'lst': ['this', 'list', 'has', 'words', 'of', 'different', 'lengths']}, {'lst': ['racecar', 'deified', 'civic', 'level', 'rotor']}]

    from functools import cmp_to_key
    def cmp(s: str, t: str):
        if len(s) != len(t):
            return len(s) - len(t)
        return -1 if s < t else 1
    return sorted(list(filter(lambda s: len(s) % 2 == 0, lst)), key=cmp_to_key(cmp))


Instruction:
Реши задачу по программированию
{function}

def x_or_y(n, x, y):
    """Простая программа, которая должна возвращать значение x, если n — простое число, и возвращать значение y в противном случае.
    Примеры:
        x_or_y(7, 34, 12) == 34
        x_or_y(15, 8, 5) == 5
    """

    def is_prime(a):
        return not (a < 2 or any(a % x == 0 for x in range(2, int(a ** 0.5) + 1)))
    return x if is_prime(n) else y


Instruction:
Реализуй функцию(ии) на языке Python
{function}

def double_the_difference(lst):
    """Дан список чисел, верните сумму квадратов нечетных чисел в списке. Игнорируйте числа, которые являются отрицательными или нецелыми.
    Примеры:
        double_the_difference([1, 3, 2, 0]) == 1 + 9 + 0 + 0 = 10
        double_the_difference([-1, -2, 0]) == 0
        double_the_difference([9, -2]) == 81
        double_the_difference([0]) == 0
        Если входной список пуст, верните 0.
    """

    ans = 0
    for num in lst:
        if num % 2 == 1 and num > 0 and "." not in str(num):
            ans += num ** 2
    return ans


Instruction:
Напишите программу по строке документации
{function}

def compare(game,guess):
    """Думаю, все мы помним то чувство, когда наконец-то известен результат какого-то долгожданного события. Чувства и мысли, которые у вас возникают в этот момент, определенно стоит записать и сравнить.    Ваша задача – определить, правильно ли человек угадал результаты ряда матчей.
Вам даны два массива – оценок и предположений одинаковой длины, где каждый индекс представляет собой один матч.
Верните массив такой же длины, обозначающий, насколько далеко было каждое предположение. Если предположение было верным, значение равно 0, а если нет, значением является абсолютная разница между предположением и оценкой.
    Примеры:
        compare([1,2,3,4,5,1],[1,2,3,4,2,-2]) -> [0,0,0,0,3,3]
        compare([0,5,0,0,0,4],[4,1,1,0,0,-2]) -> [4,4,1,0,0,6]
    """

return [abs(game[i] - guess[i]) for i in range(len(game))]


Instruction:
Необходимо реализовать логику на языке Python для следующей программы
{function}

def Strongest_Extension(class_name, extensions):
    """Вам будет предоставлено имя класса (строка) и список расширений extensions.
Расширения используются для загрузки дополнительных классов в класс. Сила расширения определяется как: пусть CAP — это количество заглавных букв в имени расширения, а SM — количество строчных букв в имени расширения, сила определяется как CAP - SM.
Вам нужно найти самое сильное расширение и вернуть строку в следующем формате: ClassName.StrongestExtensionName.
Если есть два или более расширения с одинаковой силой, следует выбрать то, которое стоит первым в списке.
Например, если вам задан класс «Slices» и список расширений: ['SErviNGSliCes', 'Cheese', 'StuFfed'], тогда вам следует вернуть «Slices.SErviNGSliCes», поскольку «SErviNGSliCes» является самым сильным расширением. (его сила равна -1).
    Примеры:
        Strongest_Extension('my_class', ['AA', 'Be', 'CC']) == 'my_class.AA'
    """

[{'class_name': 'Test1', 'extensions': ['UPPERCASE', 'uppercase', '1111']}, {'class_name': 'Test2', 'extensions': ['capitalLETTERS', 'lowercaseletters', 'mIxEdcAsE']}, {'class_name': 'Test3', 'extensions': ['oneUPPERcaseletter', 'TWoUPPERcaseletTErs', 'threeUppercaseletters', 'fourlowercaseletters']}, {'class_name': 'Test4', 'extensions': ['ALLUPPERcaseletters', 'ALLlowercaseletters', 'Nolettersatall123', '12345']}, {'class_name': 'Test5', 'extensions': ['ZERO', 'one', 'Two', 'THREE', 'four', 'FIVE', 'six', 'seven', 'eight', 'nine', '10']}, {'class_name': 'Person', 'extensions': ['TEst', 'Name', 'naMe', 'AGE']}, {'class_name': 'Animal', 'extensions': ['CAMel', 'hOrSE', 'DoG']}, {'class_name': 'Vehicle', 'extensions': ['Automobile', 'CAR', 'SuPerbIkE', 'Z']}, {'class_name': 'Computer', 'extensions': ['Laptop', 'DEsktop', 'TABLET', 'MONITOR', 'MOUSE', 'KEYboard']}, {'class_name': 'Book', 'extensions': ['NOVEL', 'picturebook', 'COOkbook', 'Dictionary', 'Encyclopedia']}]

    def strength(s: str) -> int:
        CAP, SM = 0, 0
        for ch in s:
            if ch.isupper(): CAP += 1
            if ch.islower(): SM += 1
        return CAP - SM
    max_strength = max(map(strength, extensions))
    for e in extensions:
        if strength(e) == max_strength:
            return class_name + "." + e


Instruction:
Допишите код на языке Python в соответствии с условием, приведенным в описании
{function}

def cycpattern_check(a , b):
    """Вам даны 2 слова. Вам нужно вернуть True, если второе слово или любой вариант этого слова, полученный путем цикличных перестановок букв является подстрокой в первом слове.
    Примеры:
    cycpattern_check('abcd','abd') => False
    cycpattern_check('hello','ell') => True
    cycpattern_check('whassup','psus') => False
    cycpattern_check('abab','baa') => True
    cycpattern_check('efef','eeff') => False
    cycpattern_check('himenss','simen') => True
    """

[{'a': 'hello', 'b': 'olelh'}, {'a': 'abcdefg', 'b': 'cde'}, {'a': 'banana', 'b': 'nab'}, {'a': 'python', 'b': 'nthy'}, {'a': 'onomatopoeia', 'b': 'onat'}, {'a': 'racecar', 'b': 'race'}, {'a': 'mississippi', 'b': 'sis'}, {'a': 'coffee', 'b': 'ffeco'}, {'a': 'programming', 'b': 'ammiprogr'}, {'a': 'anagram', 'b': 'margana'}]

    if a == b:
        return True
    if b == "":
        return True
    for i in range(0, len(b)):
        if b[i:] + b[:i] in a:
            return True
    return False


Instruction:
Дано описание функции, напиши программу на языке Python
{function}

def even_odd_count(num):
    """Дано целое число. вернуть кортеж с количеством четных и нечетных цифр соответственно.
    Примеры:
        even_odd_count(-12) ==> (1, 1)
        even_odd_count(123) ==> (1, 2)
    """

    even, odd = 0, 0
    for ch in str(num):
        if ch in "02468": even += 1
        if ch in "13579": odd += 1
    return even, odd


Instruction:
На вход подается функция(ии) с описанием в виде строки docstring. В соответствии с описанием вам необходимо реализовать функцию(ии)
{function}

def int_to_mini_roman(number):
    """Дано положительное целое число, получите его запись в виде римского числа и верните ее в нижнем регистре.
    Ограничения: 1 <= num <= 1000
    Примеры:
        int_to_mini_roman(19) == 'xix'
        int_to_mini_roman(152) == 'clii'
        int_to_mini_roman(426) == 'cdxxvi'
    """


Instruction:
По данному условию с фиксированной шапкой функции(ий) напиши программу
{function}

def right_angle_triangle(a, b, c):
    """Даны длины трёх сторон треугольника. Возвращает True, если стороны образуют прямоугольный треугольник, в противном случае — False. Прямоугольный треугольник – это треугольник, в котором один угол прямой или равен 90 градусам.
    Примеры:
        right_angle_triangle(3, 4, 5) == True
        right_angle_triangle(1, 2, 3) == False
    """


Instruction:
Необходимо написать код по условию из строковой переменной документации, следующей после функции(ий)
{function}

def find_max(words):
    """Напишите функцию, которая принимает на вход список строк.
В списке есть разные слова. Верните слово с максимальным количеством уникальных символов. Если несколько строк содержат максимальное количество уникальных символов, верните первую по лексикографическому порядку.
    Примеры:
        find_max(['name', 'of', 'string']) == 'string'
        find_max(['name', 'enam', 'game']) == 'enam'
        find_max(['aaaaaaa', 'bb' ,'cc']) == 'aaaaaaa'
    """

[{'words': ['abcdefg', 'hijklmnop', 'qrstuvwxyz']}, {'words': ['abacbdce', 'edcbacba', 'dbcaebda']}, {'words': ['aabbcc', 'dddeee', 'fff']}, {'words': ['abc', 'bcd', 'def', 'efg']}, {'words': ['abcd', 'bcde', 'cdef', 'defg']}, {'words': ['aaaa', 'bbbb', 'cccc']}, {'words': ['hello']}, {'words': ['xyz', 'pqr']}, {'words': ['abc', 'defg']}, {'words': ['aaa', 'bbb', 'ccc', 'aaa']}]

    mx_ch_cnt, ans = 0, ""
    for word in words:
        ch_cnt = len(set(word))
        if ch_cnt > mx_ch_cnt or (ch_cnt == mx_ch_cnt and word < ans):
            mx_ch_cnt, ans = ch_cnt, word
    return ans


Instruction:
Дан шаблон функции(ий) с описанием работы этой функции в качестве условия задачи. Допишите программу
{function}

def eat(number, need, remaining):
    """Вы голодный кролик и уже съели определенное количество моркови,
но сейчас вам нужно съесть еще какое-то количество моркови, чтобы завершить дневной прием пищи.
вы должны вернуть массив [общее количество съеденной моркови после приема пищи, количество моркови оставшейся после приема пищи]
Если количества оставшейся моркови недостаточно, вы съедите всю оставшуюся морковь, но все равно будете голодны.
    Примеры:
        * eat(5, 6, 10) -> [11, 4]
        * eat(4, 8, 9) -> [12, 1]
        * eat(1, 10, 10) -> [11, 0]
        * eat(2, 11, 5) -> [7, 0]
    Переменные:
    @number : целое число, количество моркови, которое вы съели.
    @need: целое число, количество моркови, которое вам нужно съесть.
    @remaining : целое число, количество оставшейся моркови на складе.

    Ограничения:
    * 0 <= number <= 1000
    * 0 <= need <= 1000
    * 0 <= remaining <= 1000

Зачильтесь :)
    """

[{'number': 0, 'need': 0, 'remaining': 0}, {'number': 10, 'need': 0, 'remaining': 10}, {'number': 0, 'need': 10, 'remaining': 5}, {'number': 5, 'need': 0, 'remaining': 5}, {'number': 2, 'need': 2, 'remaining': 2}, {'number': 999, 'need': 1, 'remaining': 0}, {'number': 0, 'need': 999, 'remaining': 1}, {'number': 500, 'need': 500, 'remaining': 1000}, {'number': 1, 'need': 10, 'remaining': 5}, {'number': 0, 'need': 0, 'remaining': 5}]

    if need <= remaining:
        return [number + need, remaining - need]
    else:
        return [number + remaining, 0]


Instruction:
Реши задачу по программированию
{function}

def do_algebra(operator, operand):
    """Даны два списка operator и operand. Первый список содержит основные алгебраические операции, а второй список представляет собой список целых чисел. Используйте два данных списка, чтобы построить алгебраическое выражение и вернуть результат этого выражения.
Основные операции алгебры:
    Сложение ( + )
    Вычитание ( - )
    Умножение ( * )
    Деление целочисленное ( // )
    Возведение в степень ( ** )

    Примеры:
        operator['+', '*', '-']
        array = [2, 3, 4, 5]
        result = 2 + 3 * 4 - 5
        => result = 9

    Примечание:
        Длина списка operator меньше длины списка operand на единицу.
        operand — это список неотрицательных целых чисел.
        В списке operator есть хотя бы один оператор, а в списке operand есть как минимум два операнда.
    """

    exp = ""
    for i in range(len(operator)):
        exp += str(operand[i]) + operator[i]
    exp += str(operand[-1])
    return eval(exp)


Instruction:
Реализуй функцию(ии) на языке Python
{function}

def solve(s):
    """Вам дана строка s.
если s[i] — буква, измените ее регистр с нижнего на верхний или наоборот, в противном случае оставьте все как есть.
Если строка не содержит букв, разверните строку.
Функция должна вернуть полученную строку.
    Примеры:
        solve('1234') = '4321'
        solve('ab') = 'AB'
        solve('#a@C') = '#A@c'
    """

    ans, has_letter = "", False
    for ch in s:
        if ch.isalpha():
            has_letter = True
            ans += ch.swapcase()
        else:
            ans += ch
    return ans if has_letter else s[::-1]


Instruction:
Напишите программу по строке документации
{function}

def string_to_md5(text):
    """Дана строка «text», верните строку эквивалентную хэшу md5. Если «text» — пустая строка, верните None.
    Примеры:
        string_to_md5('Hello world') == '3e25960a79dbc69b674cd4ec67a72c62'
    """

    if text == "": return None
    import hashlib
    m = hashlib.md5()
    m.update(text.encode("utf-8"))
    return m.hexdigest()


Instruction:
Необходимо реализовать логику на языке Python для следующей программы
{function}

def generate_integers(a, b):
    """Дано два положительных целых числа a и b, верните четные цифры между a и b в порядке возрастания.
    Примеры:
        generate_integers(2, 8) => [2, 4, 6, 8]
        generate_integers(8, 2) => [2, 4, 6, 8]
        generate_integers(10, 14) => []
    """

    if a > b: a, b = b, a
    return [i for i in range(a, min(b + 1, 10)) if i % 2 == 0]