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

def beautiful_string(string: str) -> str:
    """Строка является красивой, если в ней каждая буква встречается как в строчном, так и в прописном виде. Выведите наибольшую красивую подстроку строки string. Если таких строк больше одной, то выведите ту, что встречается раньше всего в string. Если красивых подстрок нет, то ответом будет пустая строка.
    Примеры:
       beautiful_string(string=ФлЮГегЕхаЙмЕН) == 'ГегЕ'
       beautiful_string(string=метафора) == ''
    """

[{'string': 'ФлЮГегЕхаЙмЕН'}, {'string': 'метафора'}, {'string': 'щшщмфйЗЕвщуэЬэЖДЬКиЭэнйпйхчФгкДЩФхОЗыв'}, {'string': 'жтУкОцяЛзуюлгюйлкНбазиХЯЬКЩИУвчДЛыщшъБ'}, {'string': 'ПиЦРяовчтТффнщшвЕБюнчМгЭЭчЩЪфжЯвЖсчвЮ'}, {'string': 'чЫъТцъФНЮАУдФЧВБдГЪЬхэДцЙЮНршпЩЛХбЭЪрэх'}, {'string': 'фТММснЕШВЙгйЬщЕрМъПДЧЕхШДФЪдУГкЮб'}, {'string': 'ЭЩгДДцЛЛШыИЦЗбсНЦшукЖКуЧНгУЧкОЮцА'}, {'string': 'РзжкбАусжМЧДРЯДЫожЛТпЧлАМслВшйаН'}, {'string': 'ыЛщЧрдЭВХЖЪюДВйбРъШшфлпВЪпмХэреГжце'}]

def beautiful_string(string: str) -> str:
    ans = ""
    for j in range(len(string)):
        for i in range(j):
            t = string[i : j+1]
            if set(t) == set(t.swapcase()):
                ans = max(ans, t, key=len)
    return ans


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

from typing import List

def unique_numbers(array: List[int]) -> int:
    """Дан список чисел array. Выведите сумму всех уникальных чисел данного массива. Уникальным является такое число, которое больше не встречается в списке.
    Примеры:
       unique_numbers(array=[7, 0, 2, 2, 5, 6, 5, 5, 7, 1]) == 7
       unique_numbers(array=[5, 3, 8, 1, 5, 1, 0, 6, 6, 1, 2, 2]) == 11
    """

from typing import List

def unique_numbers(array: List[int]) -> int:
    sum=0
    for i in array:
        if array.count(i)==1:
            sum+=i
    return sum


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

def largest_box(start:int, end: int) -> int:
    """Мячи занумерованы числами от start до end включительно. Каждый мяч кладется в коробку, номер которой равен сумме цифр номера мяча. Выведите количество мячей в наиболее заполненной мячами коробке.
    Примеры:
       largest_box(start=542, end=600) == 6
       largest_box(start=338, end=437) == 10
    """

def largest_box(start:int, end: int) -> int:
    map1 = {}
    for i in range(start, end + 1):
        temp = i
        sum1 = 0
        while temp:
            sum1 += temp % 10
            temp = temp // 10
        map1[sum1] = map1.get(sum1, 0) + 1
    return max(map1.values())


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

def largest_time(string: str) -> str:
    """Замените символ "&" в строке string на цифру таким образом, чтобы время, которое содержится в данной строке, было наиболее поздним в рамках одних суток. Формат записи времени "HH:MM" от 00:00 до 23:59. Выведите полученную строку.
    Примеры:
       largest_time(string=&1:29) == '21:29'
       largest_time(string=10:&2) == '10:52'
    """

def largest_time(string: str) -> str:
    string = list(string)
    for i in range(len(string)):
        if string[i] == "?":
            if i == 0: string[i] = "2" if string[i+1] in "?0123" else "1"
            elif i == 1: string[i] = "3" if string[0] == "2" else "9"
            elif i == 3: string[i] = "5"
            else: string[i] = "9"
    return "".join(string)


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

from typing import List

def equal_concatenations(array1: List[str], array2: List[str]) -> int:
    """Даны два непустых массива строк array1 и array2. Объедините все элементы в array1 в изначальном порядке в одну строку. Сделайте то же самое для array2. Определите, одинаковые ли строки получились. Если да, выведите 1, иначе выведите 0.
    Примеры:
       equal_concatenations(array1=['кяш', 'веэзю', 'им', 'дчжтущс', 'ъфла', 'ойбрц', 'хнып', 'ьг'], array2=['кяшвеэ', 'зюим', 'дчж', 'тущсъфл', 'аойбрцхн', 'ыпьг']) == 1
       equal_concatenations(array1=['фгпнъдсяэытиьежйлоюамбквзцхущшрч'], array2=['фгпэытиьежйлоюамбквзцхущшрч']) == 0
    """

[{'array1': ['кяш', 'веэзю', 'им', 'дчжтущс', 'ъфла', 'ойбрц', 'хнып', 'ьг'], 'array2': ['кяшвеэ', 'зюим', 'дчж', 'тущсъфл', 'аойбрцхн', 'ыпьг']}, {'array1': ['фгпнъдсяэытиьежйлоюамбквзцхущшрч'], 'array2': ['фгпэытиьежйлоюамбквзцхущшрч']}, {'array1': ['мъчу', 'зцквюх', 'еп', 'яьжсдлфрышщгон', 'абтийэ'], 'array2': ['мъ', 'чузц', 'квюхе', 'пяьжсдлфры', 'шщгонабтийэ']}, {'array1': ['кгъяй', 'юьесу', 'лриытзшдж', 'энопвщхмц', 'афбч'], 'array2': ['офйщякув', 'хетюч', 'ьцмсшыаэд', 'ъгнрлпзбжи']}, {'array1': ['смлыгр', 'хцпнвщдъош', 'еяьжфэйбюка', 'чзути'], 'array2': ['смлы', 'грхцп', 'нвщдъо', 'шеяь', 'жфэйб', 'юкачзути']}, {'array1': ['осх', 'шалзфюуй', 'ъбщгдкн', 'трпмьэжиыц', 'чвяе'], 'array2': ['осх', 'шалзфюуйъ', 'бщгдк', 'нпмьэжиы', 'цчвяе']}, {'array1': ['зшьр', 'ялуодбэвец', 'ъсжчмйапхгщтн', 'кфиюы'], 'array2': ['зшьрял', 'уодбэвец', 'ъсжчмйапхгщтн', 'кфиюы']}, {'array1': ['йшоеяры', 'ющгавнисцт', 'ъзфбжкдул', 'хпьчэм'], 'array2': ['ьгжхдтфо', 'эемюъ', 'ялкзсуыпи', 'ашвцщбйр', 'чн']}, {'array1': ['кшф', 'йцоду', 'тмьвю', 'яхечщ', 'рзлнсыиэбъ', 'гжпа'], 'array2': ['кшфй', 'цодут', 'мьвюяхеч', 'щрзлнсы', 'иэбъг', 'жпа']}, {'array1': ['чьщыб', 'сяэшмдйлз', 'хежпнък', 'юфтгцру', 'оива'], 'array2': ['щйядт', 'эарп', 'бнмежзъ', 'ксиыг', 'увшлюьц', 'чхфо']}]

from typing import List

def equal_concatenations(array1: List[str], array2: List[str]) -> int:
    if (("".join(array1))==("".join(array2))):
        return 1
    return 0


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

from typing import List

def frequeny_sort(array: List[int]) -> List[int]:
    """Отсортируйте список целых чисел array в порядке возрастания частоты появления элементов в списке. Элементы с одинаковой частотой отсортируйте по убыванию значения. Выведите получившийся список.
    Примеры:
       frequeny_sort(array=[18, 18, 3, 8, 12, 7, 15, 6, 2, 2, 14]) == [15, 14, 12, 8, 7, 6, 3, 18, 18, 2, 2]
       frequeny_sort(array=[9, 12, 17, 0, 9, 4, 10, 4, 9]) == [17, 12, 10, 0, 4, 4, 9, 9, 9]
    """

from typing import List

def frequeny_sort(array: List[int]) -> List[int]:
    return sorted(sorted(array,reverse=1),key=array.count)


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

def largest_substring(string: str) -> int:
    """Выведите длину наибольшей непрерывной подстроки, заключенной между двумя одинаковыми символами в строке string, не считая сами данные символы. Символы-границы могут повторяться внутри подстроки. Если такой строки не существует, выведите -1.
    Примеры:
       largest_substring(string=флюгегехаймен) == 6
       largest_substring(string=метафора) == 3
    """

[{'string': 'флюгегехаймен'}, {'string': 'метафора'}, {'string': 'вжзцчтэпуюымп'}, {'string': 'зяцбтвноецапшоенцо'}, {'string': 'емърпысмыъщмыъмщй'}, {'string': 'вфърйтпечйосшюрвхйшгья'}, {'string': 'южбгцгжюгфлшззбвшмефзгормдхвгсзъюлысбв'}, {'string': 'ерщднлтгсмяяаршфсэнкьрлйки'}, {'string': 'кфлмзощсяшуэщяосдовдулкцнаэнцнгав'}, {'string': 'ащйзасадхзудъьхрнъь'}, {'string': 'зъгкмжвюгжнъб'}, {'string': 'ъшпвлпцбхцг'}]

def largest_substring(string: str) -> int:
    a=[]
    for i in range(0,len(string)-1) :
        b=0
        for j in range(i+1,len(string)) :
            if string[j]==string[i] :
                b=j-i-1
                a.append(b)
    return max(a) if len(a)>0 else -1


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

def common_divisors(number1: int, number2: int) -> int:
    """Выведите количество общих делителей чисел number1 и number2. Число A является делителем числа B, если B делится на A без остатка.
    Примеры:
       common_divisors(number1=63, number2=270) == 3
       common_divisors(number1=27, number2=93) == 2
    """

def common_divisors(number1: int, number2: int) -> int:
    min_ele=min(number1,number2)
    count=0
    while min_ele>0:
        if ( number1%min_ele==0 and number2%min_ele==0):
            count+=1
        min_ele-=1
    return count


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

from typing import List

def identical_subarray(array: List[int], number: int) -> int:
    """Подпоследовательность списка array должна состоять только из одинаковых элементов, после удаления из списка array не более, чем number элементов. Определите длину наибольшей такой подпоследовательности целочисленного списка array. Выведите получившуюся длину.
    Примеры:
       identical_subarray(array=[6, 7, 7, 6, 5, 8, 2, 9, 9, 7, 8, 5, 6, 4, 7], number=9) == 3
       identical_subarray(array=[4, 3, 1, 11, 7, 8, 9, 10, 4, 3], number=1) == 1
    """

from typing import List

def identical_subarray(array: List[int], number: int) -> int:
    from collections import Counter
    mx, l, ctr = 0, 0, Counter()
    for r, num in enumerate(array):
        ctr[num]+= 1
        mx = max(mx, ctr[num])
        if mx + number <= r - l:
            ctr[array[l]]-= 1
            l+= 1
    return mx


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

def decode_message(string: str, target: str) -> str:
    """Сделайте словарь, где в key записывается каждый из символов строки string по порядку по его первому вхождению в строку, а в value – символы русского алфавита по порядку. Используя полученные пары чисел key: value, замените все символы в строке target по словарю и выведите получившуюся строку, сохраняя пробелы на изначальных местах. Не учитывайте букву "ё" при кодировании и декодировании.
    Примеры:
       decode_message(string=ьсгыфлущншваяйеюдмхчиэбркпзъжцот, target=ьююлхнх юднэефнх ге гдлят лфъ) == 'аппетит приходит во время еды'
       decode_message(string=чхпбоясуьылюэтйшцегимжвдкрназфъщ, target=хяотйегз тя шйцйл) == 'бедность не порок'
    """

[{'string': 'ьсгыфлущншваяйеюдмхчиэбркпзъжцот', 'target': 'ьююлхнх юднэефнх ге гдлят лфъ'}, {'string': 'чхпбоясуьылюэтйшцегимжвдкрназфъщ', 'target': 'хяотйегз тя шйцйл'}, {'string': 'бжхпнсоцяемъгэиюйфщлазывукшрчдть', 'target': 'жсц щйлнб эс хръихяуч я йржмл яц юйлнб'}, {'string': 'щлиьжвтоъфяхрпгзкбйчашумюэнедсыц', 'target': 'лвбзхщйпеф бек леищвй йгхдяг и реювхгияв'}, {'string': 'лыгмтьрхъцодсфюбжвчеакиэунязйщпш', 'target': 'ыюм уьдйсе сьчъч'}, {'string': 'плиячгьцшщаотжюэъбнрефыкдзхуйсмв', 'target': 'и цчюъюиют нгог цчюъюиущ чрф'}, {'string': 'гцмэпйианюяхсърщчкольвтдзуфшбжеы', 'target': 'мрхярм црыобкы м хйк ъй врпноб'}, {'string': 'пваыюесшцгфлндчязйоъжкьщтэбиухрм', 'target': 'ылпшп вчмойм п зъфц юелпро'}, {'string': 'бзмяеыйвщьтлсхндцэгшюроиучъапфкж', 'target': 'янгнмп эбхщ лыгнс б гылыяш вщснь'}, {'string': 'ущмзаелжцвсдпгтнихкбчэьйыфшоюряъ', 'target': 'ауиегтпб стгя м жбщо ге хпткиък'}]

def decode_message(string: str, target: str) -> str:
    mapping = {' ': ' '}
    i = 0
    res = ''
    letters = 'абвгдежзийклмнопрстуфхцчшщъыьэюя'
    for char in string:
        if char not in mapping:
            mapping[char] = letters[i]
            i += 1
    for char in target:
        res += mapping[char]
    return res


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

def percentage_frequency(string: str, symbol: str) -> int:
    """Каков процент количества появлений символа symbol от всех символов строки string? Выведите процент, округленный вниз до ближайшего целого числа.
    Примеры:
       percentage_frequency(string=флюгегехаймен, symbol=й) == 7
       percentage_frequency(string=метафора, symbol=а) == 25
    """

[{'string': 'флюгегехаймен', 'symbol': 'й'}, {'string': 'метафора', 'symbol': 'а'}, {'string': 'ааааааааааааааааааааааааа', 'symbol': 'з'}, {'string': 'бйпдщвэсчьомхипцйтпчхфьтйкзцйгэбфцццкфг', 'symbol': 'ф'}, {'string': 'йишууфмпнхгэзвбфхагыхужос', 'symbol': 'э'}, {'string': 'яакйыщщрьялллкбфпжебтчгбялсымкуэффнд', 'symbol': 'к'}, {'string': 'этявопсппяссгфяжкпнчьязэтдрц', 'symbol': 'п'}, {'string': '', 'symbol': 'а'}, {'string': 'зччффгучвц', 'symbol': 'г'}, {'string': 'айцшчувжяюнлэрцэсчвъютшчкрьлтзязйидоеса', 'symbol': 'э'}]

def percentage_frequency(string: str, symbol: str) -> int:
    l=len(string)
    count=0
    for i in string:
        if i==symbol:
            count+=1
        else:
            pass
    return int((count/l)*100)


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

def minimum_inversions(number: int, target: int) -> int:
    """Выведите, какое наименьшее количество инверсий битов числа number нужно сделать, чтобы получилось число target. Инверсия битов – это замена "0" на "1" и "1" на "0" в двоичной записи числа. Инвертировать можно как биты после первого значащего бита, так и до него.
    Примеры:
       minimum_inversions(number=469, target=380) == 4
       minimum_inversions(number=17, target=253) == 5
    """

def minimum_inversions(number: int, target: int) -> int:
    count = 0
    while number or target:
        if number%2 != target%2: count+=1
        number, target = number//2, target//2
    return count


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

def binary_inversion(number: int) -> int:
    """Дано число в десятичной системе счисления number. Инвертируйте биты в его двоичном представлении, запишите полученное двоичное число в обратном порядке и выведите его в десятичной системе счисления. Инверсия битов – это замена "0" на "1" и "1" на "0".
    Примеры:
       binary_inversion(number=4) == 6
       binary_inversion(number=28) == 24
    """

def binary_inversion(number: int) -> int:
    bin_num = bin(number)[2:]
    new_num = []
    for i in range(len(bin_num)):
        if bin_num[i] == '0':
            new_num.append('1')
        else:
            new_num.append('0')
    new = ''.join(new_num[::-1])
    return int(new, 2)


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

def capitalize_title(string: str) -> str:
    """Дана строка string, которая содержит несколько слов, разделенных пробелами. Все слова с длиной от 1 до 2 сделайте строчными буквами, а для остальных слов сделайте первую букву слова прописной, а остальные строчными. Выведите получившуюся строку.
    Примеры:
       capitalize_title(string=аппетит приходит во время еды и) == 'Аппетит Приходит во Время Еды и'
       capitalize_title(string=бедность не порок) == 'Бедность не Порок'
    """

[{'string': 'аппетит приходит во время еды и'}, {'string': 'бедность не порок'}, {'string': 'без труда не выловишь и рыбку из пруда'}, {'string': 'бесплатный сыр, бывает- только в мышеловке'}, {'string': 'бог шельму= метит'}, {'string': 'в здоровом теле – здоровый дух'}, {'string': 'волков бояться – в лес не ходить'}, {'string': 'глаза боятся, а руки делают'}, {'string': 'готовь сани летом, а телегу зимой'}, {'string': 'дарёному коню в зубы не смотрят'}]

def capitalize_title(string: str) -> str:
    li = string.split()
    for i,l in enumerate(li):
        if len(l) <= 2:
            li[i] = l.lower()
        else:
            li[i] = l[0].upper() + l[1:].lower()
    return ' '.join(li)


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

def double_inversion(number: int) -> str:
    """Дано целое число number. Дважды повторите разворот цифр записи числа в обратном порядке, удаляя ведущие нули. Если полученное число равно исходному, выведите "Да", иначе выведите "Нет".
    Примеры:
       duble_inversion(number=4) == 'Да'
       duble_inversion(number=20) == 'Нет'
    """

def double_inversion(number: int) -> str:
    s = str(number)
    s1 = int(s[::-1])
    s2 = str(s1)
    if int(s2[::-1])==int(s):
        return "Да"
    return "Нет"


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

from typing import List

def distinct_quadruplets(array: List[int]) -> int:
    """Дан список целых положительных чисел array. Выведите количество четверок чисел из массива таких, что сумма первых трех равна четвертому, а также все числа разные и четвертое число строго больше любого из первых трех.
    Примеры:
       distinct_quadruplets(array=[18, 4, 19, 9, 2, 10, 14, 7, 0, 17, 14, 15, 16]) == 7
       distinct_quadruplets(array=[5, 1, 10, 10, 0, 17, 1, 0, 16, 17, 14, 7, 6, 10]) == 16
    """

from typing import List

def distinct_quadruplets(array: List[int]) -> int:
    count=0
    for a in range(len(array)):
        for b in range(a+1,len(array)):
            for c in range(b+1,len(array)):
                for d in range(c+1,len(array)):
                    if array[a]+array[b]+array[c]==array[d]:
                        count+=1
    return count


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

from typing import List

def middle_index(array: List[int]) -> int:
    """Для целочисленного списка array найдите наименьший возможный такой индекс, что сумма всех элементов левее данного индекса равна сумме элементов списка правее данного индекса. Выведите полученный индекс или -1, если такого индекса не существует.
    Примеры:
       middle_index(array=[17, 12, 6, 5, 16, 8, 10, 9, 8, 5]) == 4
       middle_index(array=[13, 12, 15, 0, 2, 11, 5, 16, 4, 7, 10]) == 5
    """

from typing import List

def middle_index(array: List[int]) -> int:
    left = 0
    right = sum(array)
    for index, num in enumerate(array):
        right -= num
        if left == right:
            return index
        left += num

    return -1


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

from typing import List

def separate_words(array: List[str], symbol: str) -> List[str]:
    """Разделите все строки списка array по символу symbol и выведите полученный список разделенных строк в том же порядке, в котором они были в изначальном списке.
    Примеры:
       separate_words(array=['90в$ие5д86з34гзё1', 'ё$', '89з0$5б$е74', 'ёбб$0д', 'ги71$6$66гг', '51$'], symbol=$) == ['90в', 'ие5д86з34гзё1', 'ё', '89з0', '5б', 'е74', 'ёбб', '0д', 'ги71', '6', '66гг', '51']
       separate_words(array=['94/1гбж1да43г9з', '2бе3аб/97гж0з89'], symbol=/) == ['94', '1гбж1да43г9з', '2бе3аб', '97гж0з89']
    """

from typing import List

def separate_words(array: List[str], symbol: str) -> List[str]:
    ls = []
    for data in array:
        word = data.split(symbol)
        for data in word:
            if(data != ""):
                ls.append(data)
    return ls


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

def achieve_number(number: int, target: int) -> int:
    """Число называется красивым для числа target, если после совершения не более, чем number действий оно станет равно target. В качестве одного действия разрешается увеличивать target на 1 и одновременно уменьшать число на 1. Выведите максимально возможное красивое число для target.
    Примеры:
       achieve_number(number=34, target=81) == 149
       achieve_number(number=27, target=48) == 102
    """

def achieve_number(number: int, target: int) -> int:
    return target+2*number


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

def triple_concatenation(number: int) -> str:
    """Соедините число number с числами 2 * number и 3 * number. Если полученное число содержит все цифры от 1 до 9, но не содержит 0, то выведите "Да", в ином случае выведите "Нет".
    Примеры:
       triple_concatenation(number=4) == 'Нет'
       triple_concatenation(number=192) == 'Да'
    """

def triple_concatenation(number: int) -> str:
    concatenated = str(number) + str(2 * number) + str(3 * number)

    if '0' in concatenated:
        return "Нет"
    if len(concatenated)>9:
        return "Нет"
    for i in range(1,10):
        if str(i) not in concatenated :
            return "Нет"
    return "Да"


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

def truncate_number(string: str) -> str:
    """Удалите все нули в конце числа данного на вход в формате строки string и выведите полученное число в формате строки.
    Примеры:
       truncate_number(string=618673000) == '618673'
       truncate_number(string=7819765) == '7819765'
    """

def truncate_number(string: str) -> str:
    while(string[-1] == '0'):
        string = string[:-1]
    return string


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

def remove_substring(string: str) -> int:
    """В строке string вы можете неограниченное количество раз удалять вхождения построк "АБ" и "ВГ". Выведите длину наименьшей возможной строки после всех удалений.
    Примеры:
       remove_substring(string=АБАБВГ) == 0
       remove_substring(string=АБВГСДЕЖАБ) == 4
    """

[{'string': 'АБАБВГ'}, {'string': 'АБВГСДЕЖАБ'}, {'string': 'АБЫЛКНВЭЫЗВГЫЗАБ'}, {'string': 'ДЛОИВАБАБЫ'}, {'string': 'ВШПНВГВБХ'}, {'string': 'ЫВЖЩШЩОАББАВ'}, {'string': 'ГВВГАББА'}, {'string': 'ВАБГ'}, {'string': 'АБЫЖДВАГВ'}, {'string': 'ШЛНПНФЫ'}]

def remove_substring(string: str) -> int:
    while "АБ" in string or "ВГ" in string:
        if "АБ" in string:
            string = string.replace("АБ","")
        elif "ВГ" in string:
            string = string.replace("ВГ","")
    return len(string)


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

def selective_sum(number: int) -> int:
    """Найдите сумму всех чисел от 1 до number включительно таких, которые делятся на 3, 5 или 7. Выведите полученную сумму.
    Примеры:
       selective_sum(number=44) == 499
       selective_sum(number=58) == 964
    """

def selective_sum(number: int) -> int:
    poss = []
    for i in range(3, number + 1):
        if i % 3 == 0 or i % 5 == 0 or i % 7 == 0:
            poss.append(i)
    return sum(poss)


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

from typing import List

def maximum_row(matrix: List[List[int]]) -> int:
    maxValue = 0
    for m in range(len(matrix)):
        sumN = 0
        sumN = sum(matrix[m])
        if sumN > maxValue:
            index =  m
        maxValue=max(maxValue,sumN)
    return maxValue


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

def parity_sum(number: int) -> int:
    """Дано десятичное натуральное число number. Выведите сумму количества единиц в двоичной записи number с четными индексами и количества единиц в двоичной записи number с нечетными индексами.
    Примеры:
       parity_sum(number=4) == 1
       parity_sum(number=192) == 2
    """

def parity_sum(number: int) -> int:
    bin_num = bin(number)[2:]
    bin_lst = list(bin_num)
    bin_lst = list(map(int, bin_lst))
    return sum(bin_lst)


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

from typing import List

def count_vowels(array: List[str], number1: int, number2: int) -> int:
    """Выведите, сколько слов в списке array в диапазоне индексов от number1 до number2, начинаются на гласную букву и заканчиваются гласной буквой (гласные буквы: 'а', 'у', 'о', 'ы', 'и', 'э', 'я', 'ю', 'ё', 'е').
    Примеры:
       count_vowels(array=['Когда', 'юла', 'ему', 'она', 'случалось', 'ела', 'брать', 'меня', 'на', 'руки'], number1=3, number2=9) == 2
       count_vowels(array=['И', 'надо', 'усердно', 'исполняли', 'они', 'свою', 'обязанность'], number1=0, number2=6) == 4
    """

[{'array': ['Когда', 'юла', 'ему', 'она', 'случалось', 'ела', 'брать', 'меня', 'на', 'руки'], 'number1': 3, 'number2': 9}, {'array': ['И', 'надо', 'усердно', 'исполняли', 'они', 'свою', 'обязанность'], 'number1': 0, 'number2': 6}, {'array': ['на', 'дворе', 'у', 'Юры', 'у', 'него', 'или', 'никогда', 'не', 'валялось', 'ни', 'сору'], 'number1': 0, 'number2': 11}, {'array': ['И', 'омега', 'глаза', 'и', 'ура', 'отделился', 'стены'], 'number1': 1, 'number2': 6}, {'array': ['замолкла', 'и', 'вздохнула,', 'а', 'потом', 'сказала', 'нам'], 'number1': 1, 'number2': 6}, {'array': ['пожертвовав', 'и', 'не', 'мною', 'одному', 'однако', 'краснощекому', 'баварскому', 'лейтенантуБыло', 'что-то', 'свое,', 'особенное,', 'в', 'складе', 'ее', 'смугловатого,', 'круглого', 'лица'], 'number1': 4, 'number2': 17}, {'array': ['вилась', 'пряталась', 'скату', 'узкая', 'лесная', 'долина'], 'number1': 3, 'number2': 5}, {'array': ['я', 'трусы', 'горшок', 'ты', 'нет', 'да', 'или', 'вилка'], 'number1': 3, 'number2': 6}, {'array': ['Когда', 'железо', 'твоя', 'киснет', 'бежит', 'ест', 'брать', 'меня', 'на', 'руки'], 'number1': 3, 'number2': 8}, {'array': ['место', 'нет', 'дорога', 'немая', 'она'], 'number1': 3, 'number2': 4}]

from typing import List

def count_vowels(array: List[str], number1: int, number2: int) -> int:
    return sum({w[0].lower(), w[-1].lower()} < {'у', 'е', 'ы', 'а', 'о', 'э', 'я', 'и', 'ю', 'ё'} for w in array[number1:number2+1])


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

def minimum_split(number: int) -> int:
    """Разделите цифры целого числа number на два отдельных числа так, чтобы сумма этих чисел была минимально возможной. Выведите полученную сумму данных чисел. Гарантируется, что number не меньше 10.
    Примеры:
       minimum_split(number=45) == 9
       minimum_split(number=192) == 21
    """

def minimum_split(number: int) -> int:
    a = sorted([int(i) for i in str(number)])
    b = ''
    c = ''
    for ind, x in enumerate(a):
        if ind%2 == 0:
            b += str(x)
        else:
            c += str(x)
    return int(b)+int(c)


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

from typing import List

def split_array(array: List[int]) -> List[int]:
    """В целочисленном массиве array разделите все числа на отдельные цифры, сохранив изначальный порядок и выведите их все одним списком. Если на вход пришел пустой массив, выведите пустой массив.
    Примеры:
       split_array(array=[75, 4, 65, 45, 31, 86, 35, 63, 13, 23, 3]) == [7, 5, 4, 6, 5, 4, 5, 3, 1, 8, 6, 3, 5, 6, 3, 1, 3, 2, 3, 3]
       split_array(array=[33, 47, 68, 73, 89, 69, 37, 25, 84, 49, 16, 4, 76]) == [3, 3, 4, 7, 6, 8, 7, 3, 8, 9, 6, 9, 3, 7, 2, 5, 8, 4, 4, 9, 1, 6, 4, 7, 6]
    """

from typing import List

def split_array(array: List[int]) -> List[int]:
    new = ''.join(list(map(str, array)))
    new = list(new)
    new = list(map(int, new))
    return new


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

def alternating_sum(number: int) -> int:
    """В целом числе number большем нуля все цифры с четными индексами имеют знак "+", а с нечетными – знак "-". Выведите сумму цифр числа number с учетом их знаков.
    Примеры:
       alternating_sum(number=4) == 4
       alternating_sum(number=192) == -6
    """

def alternating_sum(number: int) -> int:
    count=0
    number=str(number)
    for i in range(len(number)):
        if i%2==0:
            count+=int(number[i])
        else:
            count-=int(number[i])
    return count


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

from typing import List

def find_minimum(array1: List[int], array2: List[int]) -> int:
    """Выведите число, минимальное одновременно для двух массивов array1 и array2, отсортированных в порядке неубывания. Число должно встречаться как в первом массиве, так и во втором. Если такого числа нет или хотя бы один из массивов пуст, выведите "-1".
    Примеры:
       find_minimum(array1=[7, 11, 17, 21, 24, 24], array2=[7, 10, 12, 16, 20]) == 7
       find_minimum(array1=[4, 5, 7, 11, 15, 16, 21], array2=[4, 7, 10, 14, 15, 15, 17, 18, 19, 22]) == 4
    """

from typing import List

def find_minimum(array1: List[int], array2: List[int]) -> int:
    while len(array1)>0 and len(array2)>0:
        if array1[0]==array2[0]:
            return array1[0]
        elif array1[0]<array2[0]:
            array1.pop(0)
        else:
            array2.pop(0)
    return -1


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

from typing import List

def matrix_truncation(matrix: List[List[int]]) -> int:
    return sum(max(c) for c in zip(*[sorted(r) for r in matrix]))


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

def equal_sums(number: int) -> int:
    """Для целого числа number определите такое центральное число, что сумма всех чисел от 1 до центрального включительно равна сумме всех чисел от центрального числа до числа number включительно. Выведите полученное число. Если такого числа нет, то выведите -1.
    Примеры:
       equal_sums(number=1) == 1
       equal_sums(number=192) == -1
    """

def equal_sums(number: int) -> int:
    s1 = 0
    s2 = 0
    for i in range(1,number+1):
        s1 = sum(range(1, i+1))
        s2 = sum(range(i, number+1))
        if(s1==s2):
            return i
    return -1


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

def divide_circle(number: int) -> int:
    """Определите, сколько необходимо сделать разрезов в окружности, чтобы получить number одинаковых частей. Разрезы можно делать либо по любому из диаметров окружности – прямая линия от одной точки окружности до другой, проходящая через центр окружности, либо по любому из ее радиусов – прямая от центра окружности до любой из точек на окружности. Выведите полученное число.
    Примеры:
       divide_circle(number=13) == 13
       divide_circle(number=12) == 6
    """

def divide_circle(number: int) -> int:
    if number == 1: return 0
    return number // 2 if number % 2 == 0 else number


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

def temperature_sum(number: float) -> float:
    """Переведите температуру number из градусов Цельсия (Celsius) в Кельвины (Kelvin) и в градусы Фаренгейта (Fahrenheit). Округлите каждое из полученных чисел до двух знаков после запятой и выведите сумму полученных чисел, также округленную до 2 знаков после запятой.
Кельвин = Цельсий + 273.15
Фаренгейт = Цельсий * 1.80 + 32.00
    Примеры:
       temperature_sum(number=-5.72) == 289.13
       temperature_sum(number=0.85) == 307.53
    """

def temperature_sum(number: float) -> float:
    res = 0
    res += round(number + 273.15, 2)
    res += round((number * 1.8) + 32.00, 2)
    return round(res, 2)


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

from typing import List

def selective_mean(array: List[int]) -> int:
    """Выведите среднее арифметическое всех четных чисел списка array, которые делятся на 3. Выведите ответ в виде целого числа. Если число получается нецелым, отбросьте его дробную часть. Для пустого списка выведите 0. Среднее арифметическое массива чисел равно сумме всех чисел массива, поделенной на количество чисел в массиве.
    Примеры:
       selective_mean(array=[9, 10, 3, 1, 3, 14, 12, 10]) == 12
       selective_mean(array=[]) == 0
    """

from typing import List

def selective_mean(array: List[int]) -> int:
    return int(sum(lst) / len(lst)) if len(lst := [num for num in array if num % 6 == 0]) > 0 else 0


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

from typing import List

def first_extremum(array: List[int]) -> int:
    """Дан список целых чисел array. Элемент списка называется экстремумом, если он больше своих соседей слева и справа. Крайний слева элемент всегда больше левого элемента, а крайний правый – элемента справа. Выведите индекс самого первого экстремума списка. Если такого индекса не существует, выведите -1.
    Примеры:
       first_extremum(array=[14, 4, 10, 8, 7, 13, 5, 10, 12, 6]) == 0
       first_extremum(array=[6, 9, 13, 1, 10, 8]) == 2
    """

from typing import List

def first_extremum(array: List[int]) -> int:
    for i in range(len(array)):
        if not i:
            if array[i] > array[i + 1]:
                return i
        elif i == len(array) - 1:
            if array[-1] > array[-2]:
                return len(array) - 1
        else:
            if array[i] > array[i - 1] and array[i] > array[i + 1]:
                return i
    return -1


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

from typing import List

def maximum_profit(array: List[int]) -> int:
    """Дан список цен на облигации по дням array. Один раз за день можно либо продать, либо купить облигацию. На руках можно держать только одну облигацию. Выведите, какой максимальный доход от операций с облигациями можно получить при таких ценах. Доход не может быть меньше 0.
    Примеры:
       maximum_profit(array=[5, 13, 9, 2, 7, 7, 10, 13]) == 19
       maximum_profit(array=[5, 8, 1, 6, 12]) == 14
    """

from typing import List

def maximum_profit(array: List[int]) -> int:
    profit = 0
    for i in range(len(array)-1):
        profit += max((array[i+1]-array[i]), 0)
    return profit


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

from typing import List

def minimum_path(array: List[List[int]]) -> int:
    """Дан треугольный массив array. Выведите минимально возможную сумму элементов пути от начала array до конца. Из индекса K текущей строки можно переместиться только в индексы K и (K + 1) следующей строки. В треугольном массиве каждый следующий элемент имеет длину на единицу больше, чем предыдущий, начиная с 1. Для пустого array минимальный путь равен 0.
    Примеры:
       minimum_path(array=[[22], [13, 18], [1, 9, 10]]) == 22
       minimum_path(array=[[22], [26, 20], [24, 31, 19], [14, 18, 17, 15], [8, 7, 14, 8, 8]]) == 22
    """

from typing import List

def minimum_path(array: List[List[int]]) -> int:
    for i in range(len(array)-2,-1,-1):
        for j in range(0,len(array[i])):
            array[i][j]+=min(array[i+1][j+1],array[i+1][j])
    return array[0][0]


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

def reverse_number(number: int) -> int:
    """Выведите цифры числа number в обратном порядке. Если число отрицательное, то сохраните отрицательный знак в начале числа.
    Примеры:
       reverse_number(number=71) == 17
       reverse_number(number=-68) == -86
    """

def reverse_number(number: int) -> int:
    if number >= 0:
        y = int(str(number)[::-1])
        return y

    else:
        y = -int(str(number)[:0:-1])
        return y


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

from typing import List

def h_index(array: List[int]) -> int:
    """Список array содержит количества цитирований каждой из работ ученого. Выведите H-индекс ученого. H-индекс является такой максимально возможной величиной, что существует не меньше H работ ученого, которые были процитированы не менее H раз. Гарантируется, что массив содержит не менее 1 ненулевого элемента.
    Примеры:
       h_index(array=[3, 3, 5, 5, 8, 8, 8, 9, 10, 10, 10, 11, 12, 12, 14]) == 8
       h_index(array=[1, 3, 4, 5, 5, 5, 5, 8, 9, 12, 14, 14]) == 5
    """

from typing import List

def h_index(array: List[int]) -> int:
    length = len(array)
    array.sort()
    for i in range(length):
        if array[i] >= length - i:
            return length - i
    return 0


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

from typing import List

def concatenation_maximum(array: List[int]) -> str:
    """Выведите строку, которая содержит максимально возможное число, которое можно получить конкатенацией чисел из списка array. Гарантируется, что в списке более 1 элемента.
    Примеры:
       concatenation_maximum(array=[1, 3, 1, 7]) == '7311'
       concatenation_maximum(array=[6, 6, 1, 2, 6]) == '66621'
    """

from typing import List

def concatenation_maximum(array: List[int]) -> str:
    array = sorted(array,key=lambda x:x / (10 ** len(str(x)) - 1 ), reverse=True)
    str_nums = [str(num) for num in array]
    res = ''.join(str_nums)
    res = str(int(res))
    return res


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

from typing import List

def topk_elements(array: List[str], number: int) -> List[str]:
    """Выведите number наиболее часто встречающихся элементов списка array в порядке убывания по частоте появления в списке и в лексикографическом порядке для элементов с одинаковой частотой. Гарантируется, что array не пуст, а number не меньше 1.
    Примеры:
       topk_elements(array=['Калан', 'Изгнать', 'Изгнать', 'Изгнать', 'Изгнать', 'Словесник', 'Словесник', 'Словесник', 'Диссонанс', 'Диссонанс', 'Диссонанс'], number=2) == ['Изгнать', 'Диссонанс']
       topk_elements(array=['Случай', 'Вправить', 'Калан', 'Калан', 'Аут', 'Аут', 'Жаловаться'], number=4) == ['Аут', 'Калан', 'Вправить', 'Жаловаться']
    """

[{'array': ['Калан', 'Изгнать', 'Изгнать', 'Изгнать', 'Изгнать', 'Словесник', 'Словесник', 'Словесник', 'Диссонанс', 'Диссонанс', 'Диссонанс'], 'number': 2}, {'array': ['Случай', 'Вправить', 'Калан', 'Калан', 'Аут', 'Аут', 'Жаловаться'], 'number': 4}, {'array': ['Тюркология', 'Тюркология', 'Тюркология', 'Изборник', 'Изборник', 'Изборник', 'Столешница', 'Столешница', 'Столешница', 'Столешница', 'Девиация', 'Девиация', 'Дублон', 'Дублон'], 'number': 2}, {'array': ['Клоун', 'Клоун', 'Клоун', 'Втесаться', 'Метать', 'Метать', 'Метать', 'Метать', 'Пересолить', 'Пересолить', 'Пересолить', 'Пересолить', 'Подержание', 'Подержание', 'Подержание', 'Задник'], 'number': 1}, {'array': ['Калан', 'Калан', 'Калан', 'Привернуть', 'Привернуть', 'Изгнать', 'Изгнать'], 'number': 2}, {'array': ['Веко', 'Изгнать', 'Изгнать', 'Диссонанс', 'Диссонанс', 'Диссонанс'], 'number': 1}, {'array': ['Подержание', 'Подержание', 'Череп', 'Череп', 'Метать', 'Привернуть', 'Изгнать', 'Изгнать', 'Диссонанс', 'Диссонанс'], 'number': 2}, {'array': ['Задник', 'Задник', 'Работаться', 'Работаться', 'Девиация', 'Девиация', 'Девиация', 'Девиация', 'Изборник', 'Изборник', 'Изборник', 'Жим', 'Жим', 'Жим'], 'number': 1}, {'array': ['Жим', 'Вправить', 'Случай'], 'number': 2}, {'array': ['Задник', 'Задник', 'Задник', 'Задник', 'Порскать', 'Дублон', 'Втесаться', 'Втесаться'], 'number': 2}]

from typing import List

def topk_elements(array: List[str], number: int) -> List[str]:
    d = {}
    for word in array:
        d[word] = d.get(word, 0) + 1

    res = sorted(d, key=lambda word: (-d[word], word))
    return res[:number]


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

def maximum_swap(number: int) -> int:
    """Выведите максимально возможное число, которое можно получить перестановкой любых двух цифр в числе number. Если в числе только одна цифра, то ответом будет само это число.
    Примеры:
       maximum_swap(number=1) == 1
       maximum_swap(number=192) == 912
    """

def maximum_swap(number: int) -> int:
    num_str = str(number)
    num_list = list(num_str)
    last_index = {int(num_list[i]): i for i in range(len(num_list))}
    for i in range(len(num_list)):
        for d in range(9, int(num_list[i]), -1):
            if d in last_index and last_index[d] > i:
                num_list[i], num_list[last_index[d]] = num_list[last_index[d]], num_list[i]
                return int("".join(num_list))
    return number


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

from typing import List

def change_sort(array: List[int]) -> str:
    """Определите, возможно ли сделать список array отсортированным в неубывающем порядке путем изменения только одного элемента списка. Если возможно, выведите "Да", иначе – "Нет". Пустой список отсортировать невозможно.
    Примеры:
       change_sort(array=[-5, 16, 44, 44, -57, -92, 18, -30, -33, 8, 7]) == 'Нет'
       change_sort(array=[-98, -79, -78, -48, -20, 18, 33, 28, 31, 77]) == 'Да'
    """

from typing import List

def change_sort(array: List[int]) -> str:
    if len(array) == 0:
        return "Нет"
    cnt_violations=0
    for i in range(1, len(array)):
        if array[i]<array[i-1]:
            if cnt_violations==1:
                return "Нет"
            cnt_violations+=1
            if i>=2 and array[i-2]>array[i]:
                array[i]=array[i-1]
    return "Да"


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

def number_palindromes(string: str) -> int:
    """Выведите количество подстрок в строке string, которые являются палиндромами. Палиндромом является строка, которая одинаково выглядит при чтении слева-направо и справа-налево. Подстрока из 1 символа всегда является палиндромом.
    Примеры:
       number_palindromes(string=метафора) == 8
       number_palindromes(string=флюгегехаймен) == 15
    """

[{'string': 'метафора'}, {'string': 'флюгегехаймен'}, {'string': 'без труда не выловишь и рыбку из пруда'}, {'string': 'бесплатный сыр, бывает- только в мышеловке'}, {'string': 'бог шельму= метит'}, {'string': 'в здоровом теле – здоровый дух'}, {'string': 'волков бояться – в лес не ходить'}, {'string': 'глаза боятся, а руки делают'}, {'string': 'готовь сани летом, а телегу зимой'}, {'string': 'дарёному коню в зубы не смотрят'}]

def number_palindromes(string: str) -> int:
    sub = []
    for indi, i in enumerate(string):
        for indj, j in enumerate(string[indi:], start=indi):
            if i == j and string[indi:indj+1] == string[indi:indj+1][::-1]:
                sub.append(string[indi:indj+1])
    return len(sub)


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

def squares_factorization(number: int) -> str:
    """Определите, существуют ли ровно два целых числа, сумма квадратов которых дает в точности число number. Если существует, выведите "Да", иначе – "Нет".
    Примеры:
       squares_factorization(number=80) == 'Да'
       squares_factorization(number=21) == 'Нет'
    """

def squares_factorization(number: int) -> str:
    l, r = 0, int(number ** 0.5)
    while l <= r:
        lhs = l*l + r*r
        if lhs == number: return "Да"
        if lhs < number: l += 1
        else: r -= 1
    return "Нет"


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

def complex_product(string1: str, string2: str) -> str:
    """Даны две строки string1 и string2, которые содержат по одному комплексному числу. Комплексные числа — это числа вида a + b i , где a , b — вещественные числа, i — мнимая единица, то есть число, для которого выполняется равенство: i^2 = − 1. Проведите умножение данных комплексных чисел и выведите получившееся число в виде строки с аналогичным форматированием.
    Примеры:
       complex_product(string1=15+72i, string2=-30+-36i) == '2142-2700i'
       complex_product(string1=53+-78i, string2=86+50i) == '8458-4058i'
    """

def complex_product(string1: str, string2: str) -> str:
    real1,imag1=map(int,string1[:-1].split('+'))
    real2,imag2=map(int,string2[:-1].split('+'))
    real=real1*real2-imag1*imag2
    imag=real1*imag2+real2*imag1
    return str(real)+'+'+str(imag)+'i'


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

def reach_number(number: int) -> str:
    """Определите, можно ли из точки 0 координатной прямой попасть в точку number, если разрешается сделать любое количество действий. В одном действии разрешается прибавить к текущей координате номер действия иил вычесть его. Если да, выведите минимальное количество действий, необходимое для попадания в точку number из точки 0. Если нет, выведите -1.
    Примеры:
       reach_number(number=1) == 1
       reach_number(number=192) == 20
    """

def reach_number(number: int) -> str:
    number = abs(number)
    n, sum_n = 0, 0
    while sum_n < number or (sum_n - number) % 2 != 0:
        n += 1
        sum_n += n
    return n


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

def words_only(string: str) -> str:
    """Дана строка string, которая состоит из алфавитных, цифровых и пунктуационных символов. Удалите из строки все неалфавитные символы, сохранив изначальный порядок остальных символов, и выведите получившуюся строку.
    Примеры:
       words_only(string=е2хм77м5) == 'ехмм'
       words_only(string=яо8ота92и5) == 'яоотаи'
    """

def words_only(string: str) -> str:
    new = []
    for i in range(len(string)):
        if string[i].isalpha():
            new.append(string[i])
    return ''.join(new)


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

def break_palindrome(string: str) -> str:
    """Дана строка string, которая содержит палиндром. Замените один символ в строке так, чтобы она перестала быть палиндромом и была минимальной из возможных в лексикографическом порядке. Если такой замены не существует, выведите пустую строку. Строка А лексикографически меньше строки В (той же длины), если в первой позиции слева, где А и В различаются, А имеет символ строго меньший (идет раньше в алфавите), чем соответствующий символ в В.
    Примеры:
       break_palindrome(string=атзттзта) == 'аазттзта'
       break_palindrome(string=цшшц) == 'ашшц'
    """

[{'string': 'атзттзта'}, {'string': 'цшшц'}, {'string': ''}, {'string': 'туиддиут'}, {'string': 'хюввюх'}, {'string': 'ьпъъпь'}, {'string': 'ржщщжр'}, {'string': 'нщннщн'}, {'string': 'мпсааспм'}, {'string': 'а'}]

def break_palindrome(string: str) -> str:
    if len(string)==1: return ""
    n, m = len(string)-1, len(string)
    while n>=0 and string[n] == "а": n-=1
    if n >= 0 and (m%2==0 or n!=m//2):
        string = string[:m-n-1]+"а"+string[m-n:]
    else:
        string = string[:m-1]+"б"
    return string


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

from typing import List

def matrix_difference(matrix: List[List[int]], number: int) -> int:
    """Дана матрица целых чисел matrix и целое число number. Выберите из каждой строки матрицы по одному числу так, чтобы абсолютное значение разности суммы этих чисел и number была минимально возможным. Выведите значение получившейся абсолютной разности. Гарантируется, что matrix всегда имеет не менее 1 элемента.
    Примеры:
       matrix_difference(matrix=[[3, 3, 20, 49], [26, 17, 0, 10], [40, 4, 28, 48], [15, 5, 0, 27]], number=63) == 0
       matrix_difference(matrix=[[35, 19, 46, 34, 44], [21, 9, 33, 33, 44], [5, 35, 44, 36, 34], [25, 34, 49, 6, 19], [11, 47, 40, 26, 20]], number=40) == 10
    """

from typing import List

def matrix_difference(matrix: List[List[int]], number: int) -> int:
    matrix = [set(row) for row in matrix]
    rSet = set(matrix.pop())
    for row in matrix: rSet = {m+n for m in row for n in rSet}
    return min(abs(n - number) for n in rSet)


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

from typing import List

def missing_binary(array: List[str]) -> str:
    """Дан массив строк array, состоящий из двоичных чисел одинаковой длины. Определите двоичное число такой же длины, как числа в array, которого не хватает и выведите его в формате строки. Гарантируется, что ответ уникален.
    Примеры:
       missing_binary(array=['1']) == '0'
       missing_binary(array=['00', '10', '11']) == '01'
    """

from typing import List

def missing_binary(array: List[str]) -> str:
    N = len(array[0])
    limit = 2**N
    array = set(array)
    for i in range(limit):
        cur = format(i, f'0{N}b')
        if cur in array: continue
        return cur


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

def maximum_insert(number: int, string: str) -> str:
    """Дана строка string, которая содержит целое число, а также цифра number. Вставьте цифру number на какую-либо позицию в строке string так, чтобы число в строке string стало максимально возможным. Запрещено вставлять number перед отрицательным знаком. Выведите полученную строку, удалив ведущие нули в числе, если они есть.
    Примеры:
       maximum_insert(number=5, string=10) == '510'
       maximum_insert(number=5, string=7909) == '79509'
    """

def maximum_insert(number: int, string: str) -> str:
    isNegative, number, L, i = string[0] == '-', str(number), len(string), 0
    while i < L:
        if not isNegative and number > string[i]: break
        elif isNegative and number < string[i]: break
        i += 1
    return string[:i] + number + string[i:]


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

def truncate_string(string: str) -> int:
    """Дана строка string, в которой только 3 уникальных символа. Вам разрешается одновременно удалять символы из начала и конца строки при условии, что они одинаковы. Проведите все возможные удаления и выведите длину оставшейся строки.
    Примеры:
       truncate_string(string=аааааааааа) == 0
       truncate_string(string=абвабвабв) == 9
    """

[{'string': 'аааааааааа'}, {'string': 'абвабвабв'}, {'string': 'аааагггг'}, {'string': 'даббадд'}, {'string': ''}, {'string': 'еже'}, {'string': 'келек'}, {'string': 'ахаххапхаха'}, {'string': 'узи'}, {'string': 'выпвыпвып'}]

def truncate_string(string: str) -> int:
	if len(string) <= 1:
		return len(string)
	while len(string) > 1 and string[0] == string[-1]:
		i = 0
		while i + 1 < len(string) and string[i] == string[i + 1]:
			i += 1
		j = len(string) - 1
		while j - 1 > 0 and string[j] == string[j - 1] and j != i:
			j -= 1
		string = string[i + 1:j]
	return len(string)


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

from typing import List

def absolute_difference(array: List[int]) -> List[int]:
    """Дан список целых чисел array. Абсолютная разность числа и массива определяется, как сумма абсолютных значений разностей данного числа и всех элементов массива. Постройте и выведите новый список, в котором каждый элемент равен абсолютной разности элемента с тем же индексом в array и списка array.
    Примеры:
       absolute_difference(array=[51, -68, -92, -23, -56, 79, -40, 9, 36, -63]) == [-677, 275, 419, 143, 209, 209, -29, 167, 329, -463]
       absolute_difference(array=[-36, 62, -66, -51, -5, 34, 2, -67, -52, 41, 91, -9]) == [376, -604, 420, 330, 146, 68, 68, -70, -10, 548, 948, -52]
    """

from typing import List

def absolute_difference(array: List[int]) -> List[int]:
    n = len(array)
    result = [0] * n
    total_sum = sum(array)

    left_sum = 0
    right_sum = total_sum

    for i in range(n):
        result[i] = i * array[i] - left_sum + right_sum - (n - i) * array[i]
        left_sum += array[i]
        right_sum -= array[i]

    return result