Задача с кодом. Валидаторы смещения и умножения
Создайте два валидатора. Первая функция-валидатор (
Вторая функция-валидатор (
Примеры:
Решение на нашем сайте.
#задача #coding
Создайте два валидатора. Первая функция-валидатор (
is_shifted
) должна принимать два списка чисел одинаковой длины и проверять, образован ли второй список путем смещения каждого элемента первого списка на число-константу.Вторая функция-валидатор (
is_multiplied
) должна работать аналогично, только проверять, образован ли второй список путем умножения каждого элемента первого списка на константу.Примеры:
is_shifted([1, 2, 3], [2, 3, 4]) ➞ True
# Каждый элемент смещен на +1
is_shifted([1, 2, 3], [-9, -8, -7]) ➞ True
# Каждый элемент смещен на -10
is_multiplied([1, 2, 3], [10, 20, 30]) ➞ True
# Каждый элемент умножен на 10
is_multiplied([1, 2, 3], [-0.5, -1, -1.5]) ➞ True
# Каждый элемент умножен на -1/2
is_multiplied([1, 2, 3], [0, 0, 0]) ➞ True
# Каждый элемент умножен на 0
Решение на нашем сайте.
#задача #coding
Задача с кодом. Половина от половины
Напишите рекурсивную функцию, которая будет принимать два целых числа,
Значение аргумента
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите рекурсивную функцию, которая будет принимать два целых числа,
a
и b
, и возвращать, сколько раз можно разделить a
на 2, пока получающаяся половина будет оставаться больше b
.Значение аргумента
a
всегда будет как минимум вдвое больше значения b
.Примеры:
halve_count(4666, 544) ➞ 3
# (4666 -> 2333 -> 1166.5 -> 583.25)
halve_count(624, 8) ➞ 6
# (624 -> 312 -> 156 -> 78 -> 39 -> 19.5 -> 9.75)
halve_count(1000, 3) ➞ 8
# (1000 -> 500 -> 250 -> 125 -> 62.5 -> 31.25 -> 15.625 -> 7.8125 -> 3.90625)
Решение на нашем сайте.
#задача #coding
Задача с кодом. Количество дней между двумя датами
Напишите функцию, которая будет принимать две даты и возвращать количество дней между первой и второй.
Примечания:
- даты не обязательно будут относиться к одному месяцу или году
- если даты переданы в обратном порядке, нужно вернуть отрицательное число.
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет принимать две даты и возвращать количество дней между первой и второй.
Примечания:
- даты не обязательно будут относиться к одному месяцу или году
- если даты переданы в обратном порядке, нужно вернуть отрицательное число.
Примеры:
get_days(
datetime.date(2019, 6, 14), # 14 июня 2019
datetime.date(2019, 6, 20) # 20 июня 2019
) ➞ 6
get_days(
datetime.date(2018, 12, 29), # 29 декабря 2018
datetime.date(2019, 1, 1) # 1 января 2019
) ➞ 3
get_days(
datetime.date(2020, 5, 24),
datetime.date(2019, 5, 24))
) ➞ -366
Решение на нашем сайте.
#задача #coding
Задача с кодом. Негатив
Предположим, у вас есть изображение, которое можно представить в виде двумерного списка нулей и единиц. Напишите функцию для создания «негатива» этого изображения. Она должна заменить все нули единицами, а единицы нулями.
Пример:
Решение на нашем сайте.
#задача #coding
Предположим, у вас есть изображение, которое можно представить в виде двумерного списка нулей и единиц. Напишите функцию для создания «негатива» этого изображения. Она должна заменить все нули единицами, а единицы нулями.
Пример:
reverse_image([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
])
➞ [
[0, 1, 1],
[1, 0, 1],
[1, 1, 0]
]
Решение на нашем сайте.
#задача #coding
Задача с кодом. Комплементарная РНК
Напишите функцию, которая будет находить обратную комплементарную цепочку заданной цепочки рибонуклеиновой кислоты (РНК).
РНК будет представлена в виде строки, содержащей только символы «A», «C», «G» и «U». Это первые буквы названий составных частей нуклеиновых кислот — аденина, цитозина, гуанина и урацила.
Комплементарными друг для друга являются аденин и урацил, гуанин и цитозин (т. е. пары A/U и G/C). Поэтому комплементарные цепочки РНК будут такими:
Ваша функция должна выстроить правильную комплементарную цепочку, а потом еще и обратить результирующую строку.
Примечание: исходим из того, что инпут всегда будет валидным.
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет находить обратную комплементарную цепочку заданной цепочки рибонуклеиновой кислоты (РНК).
РНК будет представлена в виде строки, содержащей только символы «A», «C», «G» и «U». Это первые буквы названий составных частей нуклеиновых кислот — аденина, цитозина, гуанина и урацила.
Комплементарными друг для друга являются аденин и урацил, гуанин и цитозин (т. е. пары A/U и G/C). Поэтому комплементарные цепочки РНК будут такими:
исходная цепочка -> комплементарная
"AAA" -> "UUU"
"UUU" -> "AAA"
"GGG" -> "CCC"
"CCC" -> "GGG"
"GGAACC" -> "CCUUGG"
Ваша функция должна выстроить правильную комплементарную цепочку, а потом еще и обратить результирующую строку.
Примечание: исходим из того, что инпут всегда будет валидным.
Примеры:
reverse_complement("GUGU") ➞ "ACAC"
reverse_complement("UCUCG") ➞ "CGAGA"
reverse_complement("CAGGU") ➞ "ACCUG"
Решение на нашем сайте.
#задача #coding
Задача с кодом. Сортировка авторов
Напишите функцию, которая будет сортировать список авторов книг по их фамилиям.
Примечания:
- В списке могут содержаться как полные имена, так и инициалы.
- Если указывается не только фамилия, то она идет последней (т.е. Александр Пушкин, а не Пушкин Александр).
- Имена, фамилии, инициалы могут писаться буквами в разных регистрах.
- Если две фамилии начинаются с одной буквы, верните их в том порядке, в котором они стоят в списке.
- Обратите внимание на пробелы между инициалами.
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет сортировать список авторов книг по их фамилиям.
Примечания:
- В списке могут содержаться как полные имена, так и инициалы.
- Если указывается не только фамилия, то она идет последней (т.е. Александр Пушкин, а не Пушкин Александр).
- Имена, фамилии, инициалы могут писаться буквами в разных регистрах.
- Если две фамилии начинаются с одной буквы, верните их в том порядке, в котором они стоят в списке.
- Обратите внимание на пробелы между инициалами.
Примеры:
sort_authors(["J. K. Rowling", "w. s.", "lewis carroll", "M. M."])
➞ ["lewis carroll", "M. M.", "J. K. Rowling", "w. s."]
sort_authors(["J. L.", "J. B. priestley", "L. C.", "Suzanne Collins"])
➞ ["L. C.", "Suzanne Collins", "J. L.", "J. B. priestley"]
Решение на нашем сайте.
#задача #coding
Задача с кодом. Сумма пропущенных чисел
Создайте функцию, которая будет принимать список чисел и возвращать сумму чисел, пропущенных в списке.
Пропущенные числа — те, которых недостает в диапазоне от минимального до максимального числа в списке.
Примеры:
Решение на нашем сайте.
#задача #coding
Создайте функцию, которая будет принимать список чисел и возвращать сумму чисел, пропущенных в списке.
Пропущенные числа — те, которых недостает в диапазоне от минимального до максимального числа в списке.
Примеры:
sum_missing_numbers([4, 3, 8, 1, 2]) ➞ 18
# 5 + 6 + 7 = 18
sum_missing_numbers([17, 16, 15, 10, 11, 12]) ➞ 27
# 13 + 14 = 27
sum_missing_numbers([1, 2, 3, 4, 5]) ➞ 0
# Тут нет пропущенных чисел (все числа в диапазоне [1, 5] присутствуют в списке)
Решение на нашем сайте.
#задача #coding
Задача с кодом на ночь). Процент снижения или увеличения цены
Напишите функцию, которая будет принимать старую и новую цену товара и возвращать процент, на который цена повысилась (increase) или понизилась (decrease). Проценты нужно округлять до ближайшего целого числа.
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет принимать старую и новую цену товара и возвращать процент, на который цена повысилась (increase) или понизилась (decrease). Проценты нужно округлять до ближайшего целого числа.
Примеры:
percentage_changed("$800", "$600")
➞ "25% decrease"
percentage_changed("$1000", "$840")
➞ "16% decrease"
percentage_changed("$100", "$950")
➞ "850% increase"
Решение на нашем сайте.
#задача #coding
Задача с кодом. Телефонный номер
Напишите функцию, которая будет принимать строку и проверять, является ли инпут телефонным номером в валидном формате. Исходим из того, что любые числа 0-9, правильно расставленные, образуют телефонный номер.
Образец валидного номера — (123) 456-7890.
Примечание: не забудьте добавить пробел после закрытия скобки.
Примеры:
#задача #coding
Напишите функцию, которая будет принимать строку и проверять, является ли инпут телефонным номером в валидном формате. Исходим из того, что любые числа 0-9, правильно расставленные, образуют телефонный номер.
Образец валидного номера — (123) 456-7890.
Примечание: не забудьте добавить пробел после закрытия скобки.
Примеры:
is_valid_phone_number("(123) 456-7890") ➞ True
is_valid_phone_number("1111)555 2345") ➞ False
is_valid_phone_number("098) 123 4567") ➞ False
Решение на нашем сайте.#задача #coding
Задача с кодом. Соедините числа дефисами
Напишите функцию, которая будет принимать число n и возвращать строку, состоящую из всех чисел до n включительно. Все цифры должны отделяться друг от друга дефисами.
Примечание: числа должны идти по порядку, строка должна начинаться с 1 и заканчиваться последней цифрой числа n.
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет принимать число n и возвращать строку, состоящую из всех чисел до n включительно. Все цифры должны отделяться друг от друга дефисами.
Примечание: числа должны идти по порядку, строка должна начинаться с 1 и заканчиваться последней цифрой числа n.
Примеры:
join_digits(4)
➞ "1-2-3-4"
join_digits(11)
➞ "1-2-3-4-5-6-7-8-9-1-0-1-1"
join_digits(15)
➞ "1-2-3-4-5-6-7-8-9-1-0-1-1-1-2-1-3-1-4-1-5"
Решение на нашем сайте.
#задача #coding
Задача с кодом. Одинаковые буквы
Напишите функцию, которая будет принимать две строки и возвращать строку, состоящую из букв, общих для переданных ей строк.
Примеры:
Примечания:
- Если совпадений букв нет, функция должна вернуть пустую строку
- Функция должна быть нечувствительной к регистру (если в одной строке есть буква
- Буквы в итоговой строке должны быть отсортированы перед ее возвратом.
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет принимать две строки и возвращать строку, состоящую из букв, общих для переданных ей строк.
Примеры:
shared_letters("house", "home") ➞ "eho"
shared_letters("Micky", "mouse") ➞ "m"
shared_letters("house", "villa") ➞ ""
Примечания:
- Если совпадений букв нет, функция должна вернуть пустую строку
- Функция должна быть нечувствительной к регистру (если в одной строке есть буква
A
, а в другой a
, то функция возвращает a
.- Буквы в итоговой строке должны быть отсортированы перед ее возвратом.
Решение на нашем сайте.
#задача #coding
Задача с кодом. Инвертируем ключи и значения в словаре
Напишите функцию, которая будет менять местами ключи и значения в словаре.
Примеры:
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет менять местами ключи и значения в словаре.
Примеры:
invert({ "z": "q", "w": "f" })
➞ { "q": "z", "f": "w" }
invert({ "a": 1, "b": 2, "c": 3 })
➞ { 1: "a", 2: "b", 3: "c" }
invert({ "zebra": "koala", "horse": "camel" })
➞ { "koala": "zebra", "camel": "horse" }
Решение на нашем сайте.
#задача #coding
Задача с кодом. Множественное число существительных
Напишите функцию, которая будет принимать существительные в единственном числе и возвращать те же существительные, но если какие-то из них встречаются больше одного раза, именно эти слова должны возвращаться во множественном числе.
Примеры
Примечания
- Передаваться будут только слова на английском языке.
- Для упрощения будем считать, что множественное число всегда образуется путем добавления окончания s.
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет принимать существительные в единственном числе и возвращать те же существительные, но если какие-то из них встречаются больше одного раза, именно эти слова должны возвращаться во множественном числе.
Примеры
pluralize(["cow", "pig", "cow", "cow"]) ➞ { "cows", "pig" }
pluralize(["table", "table", "table"]) ➞ { "tables" }
pluralize(["chair", "pencil", "arm"]) ➞ { "chair", "pencil", "arm" }
Примечания
- Передаваться будут только слова на английском языке.
- Для упрощения будем считать, что множественное число всегда образуется путем добавления окончания s.
Решение на нашем сайте.
#задача #coding
Задача с кодом. Смайлики
Из символов
- веселые смайлики :) и (: оцениваются в 1 балл,
- грустные смайлики :( и ): оцениваются в -1 балл.
Задание
Напишите функцию, которая будет принимать символы ( ) : в любых сочетаниях и возвращать итоговый счет по количеству веселых и грустных смайликов, которые составляются из переданной последовательности символов.
Рабочий пример
Другие примеры
Решение на нашем сайте.
#задача #coding
Из символов
( ) : можно составлять веселые и грустные смайлики. Для целей этой задачи:- веселые смайлики :) и (: оцениваются в 1 балл,
- грустные смайлики :( и ): оцениваются в -1 балл.
Задание
Напишите функцию, которая будет принимать символы ( ) : в любых сочетаниях и возвращать итоговый счет по количеству веселых и грустных смайликов, которые составляются из переданной последовательности символов.
Рабочий пример
happiness_number(":):(") ➞ -1
# 1-й и 2-й символы составляют :) +1 Итого: 1
# 2-й и 3-й символы составляют ): -1 Итого: 0
# 3-й и 4-й символы составляют :( -1 Итого: -1
Другие примеры
happiness_number(":):(") ➞ -1
happiness_number("(:)") ➞ 2
happiness_number("::::") ➞ 0
Решение на нашем сайте.
#задача #coding
Задача с кодом. Удаление элементов списка
Условие:
Есть список, нужно написать функцию, которая будет удалять все элементы до определенного.
Примеры:
Пограничные случаи:
- Если удаляемого элемента нет в списке, то список остается как есть.
- Если список пустой, то остается как есть.
Решение на нашем сайте.
#задача #coding
Условие:
Есть список, нужно написать функцию, которая будет удалять все элементы до определенного.
Примеры:
remove_all_before([1, 2, 3, 4, 5], 3) == [3, 4, 5]
remove_all_before([1, 1, 2, 2, 3, 3], 2) == [2, 2, 3, 3]
Пограничные случаи:
- Если удаляемого элемента нет в списке, то список остается как есть.
- Если список пустой, то остается как есть.
Решение на нашем сайте.
#задача #coding
Задача с кодом. ASCII-код символа в другом регистре
Создайте функцию, которая будет принимать в качестве аргумента единичный символ и возвращать код такого же символа, но в другом регистре.
Примеры:
код символа "A" - 65
код символа "a" - 97
Примечания:
- Аргумент всегда будет единичным символом.
- Не все символы имеют регистр (например, цифры). Если перевести символ в другой регистр невозможно, функция должна вернуть код самого символа.
Решение на нашем сайте.
#задача #coding
Создайте функцию, которая будет принимать в качестве аргумента единичный символ и возвращать код такого же символа, но в другом регистре.
Примеры:
код символа "A" - 65
код символа "a" - 97
counterpartCharCode("A")
➞ 97counterpartCharCode("a")
➞ 65Примечания:
- Аргумент всегда будет единичным символом.
- Не все символы имеют регистр (например, цифры). Если перевести символ в другой регистр невозможно, функция должна вернуть код самого символа.
Решение на нашем сайте.
#задача #coding
Задача с кодом. Кратна ли цифра цифре слева?
Напишите функцию, которая будет принимать число n и проверять, кратна ли каждая его цифра цифре, стоящей слева от нее. Верните массив булевых значений результатов проверок.
Примеры:
# слева от 7 нет элемента = False
# 3/7 = False
# 3/3 = True
# 1/3 = False
# 2/1 = True
Примечание: массив всегда будет начинаться с False, поскольку слева от первой цифры ничего нет.
Решение на нашем сайте.
#задача #coding
Напишите функцию, которая будет принимать число n и проверять, кратна ли каждая его цифра цифре, стоящей слева от нее. Верните массив булевых значений результатов проверок.
Примеры:
divisible_by_left(73312)
➞ [False, False, True, False, True]# слева от 7 нет элемента = False
# 3/7 = False
# 3/3 = True
# 1/3 = False
# 2/1 = True
divisible_by_left(1)
➞ [False]divisible_by_left(635)
➞ [False, False, False]Примечание: массив всегда будет начинаться с False, поскольку слева от первой цифры ничего нет.
Решение на нашем сайте.
#задача #coding
Задача с кодом. Допишите до точки!
Представьте, что вы на экзамене. Время вышло, преподаватель говорит дописать предложение до точки и сдать работу.
Допустим, написание одной буквы занимает 0,5 с (пробелы не учитываем).
Напишите функцию, которая будет принимать полное и недописанное предложение, а возвращать время, необходимое на дописывание (в секундах).
Разбор примера
# "its" - это 3 символа
# "conclusion." - 11 символов, включая точку
# 11 + 3 = 14
# 14 x 0.5 = 7
# Помните, что пробелы не учитываются.
Другие примеры и варианты решения - на нашем сайте.
#задача #coding
Представьте, что вы на экзамене. Время вышло, преподаватель говорит дописать предложение до точки и сдать работу.
Допустим, написание одной буквы занимает 0,5 с (пробелы не учитываем).
Напишите функцию, которая будет принимать полное и недописанное предложение, а возвращать время, необходимое на дописывание (в секундах).
Разбор примера
time_to_finish(
"And so brings my conclusion to its conclusion.",
"And so brings my conclusion to"
) ➞ 7
# "its" - это 3 символа
# "conclusion." - 11 символов, включая точку
# 11 + 3 = 14
# 14 x 0.5 = 7
# Помните, что пробелы не учитываются.
Другие примеры и варианты решения - на нашем сайте.
#задача #coding
Задача с кодом. Стоит ли так гнать?
Чтобы сократить время, проведенное в дороге, водители часто превышают установленные ограничения скорости.
Напишите функцию, которая будет высчитывать время, сэкономленное за счет превышения лимита скорости. Она будет принимать три числа — лимит скорости, среднюю скорость и расстояние, которое водитель проехал со средней скоростью.
Примечания:
- Скорость = расстояние / время
- Возвращаемое время должно быть в минутах, а не в часах.
- Скорость передается в км/ч, расстояние — в км.
- Сэкономленное время — разница между временем движения при скоростном лимите и при средней скорости.
Примеры:
Решение на нашем сайте.
#задача #coding
Чтобы сократить время, проведенное в дороге, водители часто превышают установленные ограничения скорости.
Напишите функцию, которая будет высчитывать время, сэкономленное за счет превышения лимита скорости. Она будет принимать три числа — лимит скорости, среднюю скорость и расстояние, которое водитель проехал со средней скоростью.
Примечания:
- Скорость = расстояние / время
- Возвращаемое время должно быть в минутах, а не в часах.
- Скорость передается в км/ч, расстояние — в км.
- Сэкономленное время — разница между временем движения при скоростном лимите и при средней скорости.
Примеры:
time_saved(80, 90, 40) ➞ 3.3
time_saved(80, 90, 4000) ➞ 333.3
time_saved(80, 100, 40 ) ➞ 6.0
time_saved(80, 100, 10) ➞ 1.5
Решение на нашем сайте.
#задача #coding
Задача с кодом. Сколько машин потребуется?
В обычной легковой машине могут ехать четыре пассажира и один водитель, всего пятеро. Напишите функцию, которая будет принимать количество людей (n) и возвращать количество машин, необходимых для их комфортной перевозки.
Примечание. Весьма вероятно, что будет какой-то «остаток» людей, и часть машин не будет заполнена до максимальной вместимости.
Примеры:
Решение на нашем сайте.
#задача #coding
В обычной легковой машине могут ехать четыре пассажира и один водитель, всего пятеро. Напишите функцию, которая будет принимать количество людей (n) и возвращать количество машин, необходимых для их комфортной перевозки.
Примечание. Весьма вероятно, что будет какой-то «остаток» людей, и часть машин не будет заполнена до максимальной вместимости.
Примеры:
cars_needed(5) ➞ 1
cars_needed(11) ➞ 3
cars_needed(0) ➞ 0
Решение на нашем сайте.
#задача #coding