- common_elements: Даны два массива: [1, 2, 3, 2, 0] и [5, 1, 2, 7, 3, 2]. Надо вернуть [1, 2, 2, 3] (порядок неважен)
- convert_string: Дана строка (возможно, пустая), состоящая из букв A-Z: AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB. Нужно написать функцию RLE, которая на выходе даст строку вида: A4B3C2XYZD4E3F3A6B28
- squeezy: Дан список интов, повторяющихся элементов в списке нет. Нужно преобразовать это множество в строку, сворачивая соседние по числовому ряду числа в диапазоны.
Примеры:
[1,4,5,2,3,9,8,11,0] => "0-5,8-9,11"
[1,4,3,2] => "1-4"
[1,4] => "1,4" - max_sub_sequence_ones: Дан массив из нулей и единиц. Нужно определить, какой максимальный по длине подинтервал единиц можно получить, удалив ровно один элемент массива.
- group_words: Sample Input ["eat", "tea", "tan", "ate", "nat", "bat"]
Sample Output [ ["ate", "eat", "tea"], ["nat", "tan"], ["bat"] ]
Т.е. сгруппировать слова по "общим буквам" - merge: Слияние отрезков:
Вход: [1, 3] [100, 200] [2, 4]
Выход: [1, 4] [100, 200] - max_one_change: Написать функцию, которая вернёт True, если из первой строки можно получить вторую, совершив не более 1 изменения (== удаление / замена символа).
- range_equal_target: Дан отсортированный список интов и число-цель. Нужно найти такой range, чтобы сумма его элементов давала число-цель:
elements = [-3, 1, 4, 5]
target = 9
result = range(2, 4) - max_price: Аналитики застройщика смогли точно спрогнозировать цену на ближайшие N дней (пронумеруем дни в хронологическом порядке от 0 до N-1).
Требуется определить, в какие дни нужно продавать, чтобы по истечению N дней заработать как можно
больше денег. Известно, что стройка новых площадей происходит с равномерной скоростью S кв. метров в сутки.
А к 0-му дню объем построенной площади составлял S кв. метров, при том что S = 1:
5 - Дней
81 14 88 2 22 - цена за кв.м. в N день
result = 308 т.к. 88 * 3 + 22 * 2 -> max - second_max: Второй максимум в массиве: [100, 100, 99] -> 99; [1, 1, 1, 1, 1] -> None
- fibonacci: Последовательность фибоначчи: 0 1 1 2 3 5 8 13 21 ..., где каждый следующий элемент равен сумме двух предыдущих
- gcd: Наибольший общий делитель двух чисел: 18, 35 -> 1; 64, 48 -> 16
- cover_dots: По данным n отрезкам необходимо найти множество точек минимального размера, для которого каждый из отрезков содержит хотя бы одну из точек. В первой строке дано 1<=n<=100 отрезков. Каждая из последующих n строк содержит по два числа 0 <= l <= r <= 10^9, задающих начало и конец отрезка. Выведите оптимальное число m точек и сами m точек. Если таких множеств точек несколько, выведите любое из них.
- backpack: Задача о рюкзаке