Добро пожаловать на алгоритмическую кухню! Сегодня в меню — новый сет вычислительных блюд из отборных ингредиентов от проверенных поставщиков. Уровень сложности: от нарезки салатов для новичков до су-вида для шеф-поваров кода.
Рецепт успеха: тренировка алгоритмического вкуса, поддержание кодовой формы в идеальном тонусе и — дегустация — гастрономическое удовольствие от блюда, приготовленного собственными руками.
Надевайте фартуки, разогревайте IDE — начинаем готовить.
Что было раньше:
В предыдущей части мы решили:
- Hello Happy Codevarrior! (Привет, счастливый Кодовый воин!)
- Find the Slope (Найти склон)
- Word values (Значения слов)
- Merge overlapping strings (Объединить перекрывающиеся строки)
- A Rule of Divisibility by 13 (Правило делимости на 13)
- Prize Draw (Розыгрыш призов)
Решение новых задач:
Задача 1
Платформа: CodeWars
Название задачи: Is it a palindrome? (Это палиндром?)
Ссылка на задачу: https://www.codewars.com/kata/57a1fd2ce298a731b20006a4
Сложность: 8 kyu
Уже решили (На момент написания статьи): 75 922 из 194 159
Тэги: Fundamentals
Оригинальное описание задачи:
Write a function that checks if a given string (case insensitive) is a palindrome
A palindrome is a word, number, phrase, or other sequence of symbols that reads the same backwards as forwards, such as `madam` or `racecar`.
Пояснение задачи:
Функция должна проверять, является ли переданная строка палиндромом (независимо от регистра символов).
Пояснение
- Строка считается палиндромом, если она читается одинаково слева направо и справа налево, игнорируя регистр букв.
- Первым шагом будет приведение строки к нижнему регистру (`lowercase`), чтобы сравнение было нечувствительно к регистру.
- Далее нужно сравнить исходную строку с её обратным вариантом (полученным методом обращения символов или срезом строки).
Примеры:
is_palindrome("Madam") - True
is_palindrome("RaceCar") - True
is_palindrome("hello") - False
is_palindrome("a") - True
Алгоритм:
1. Привести строку к нижнему регистру.
2. Проверить равенство строки самой себе, прочитанной задом наперёд.
Пример реализации:
def is_palindrome(s):
Приводим строку к нижнему регистру
s_lower = s.lower()
Сравниваем строку с её обращением
return s_lower == s_lower[::-1]
Задача 2
Платформа: CodeWars
Название задачи: The 'if' function (Функция "если")
Ссылка на задачу: https://www.codewars.com/kata/54147087d5c2ebe4f1000805
Сложность: 8 kyu
Уже решили (На момент написания статьи): 39 105 из 112 039
Тэги: Functional Programming, Fundamentals
Оригинальное описание задачи:
Create a function that takes three arguments:
1. a value to be evaluated for truthiness.
2. a function to execute if the first argument is truthy.
3. a function to execute if the first argument is falsy.
If the first argument evaluates to _truthy_, call the second argument (a function).If it evaluates to _falsy_, call the third argument instead (also a function).
In statically-typed languages,the first argument will be a boolean. In dynamically-typed languages that attribute a truth value to all expressions, it may be of any type.
Пояснение задачи:
Функция должна принимать три аргумента:
1. Проверяемое значение — любое выражение, которое может быть проверено на истинность (`truthiness`). Например, число, строка, объект, массив или любой другой тип данных.
2. Функция для выполнения, если проверяемое значение является истинным (`truthy`).
3. Функция для выполнения, если проверяемое значение ложно (`falsy`).
Алгоритм работы функции прост:
- Проверяется условие истинности первого аргумента.
- Если аргумент оценивается как `truthy`, вызывается вторая переданная функция.
- Если аргумент оценивается как `falsy`, вызывается третья переданная функция.
Примеры использования:
Пример 1:
проверка числа
def print_positive(x):
print(f'Число положительное: {x}
def print_negative(x): print(f'Число отрицательное:
{x}
result = check_value(5, print_positive, print_negative)
Вывод: Число положительное: 5 result = check_value(-3, print_positive, print_negative) Вывод: Число отрицательное: -3
Пример 2:
проверка строки
def show_string(s): print(f'Введена строка: {s}
def show_empty(): print('Пустая строка')
result = check_value("hello", show_string, show_empty)
Вывод: Введена строка: hello result = check_value("", show_string, show_empty)
Вывод: Пустая строка
Таким образом, функция позволяет гибко выбирать поведение программы в зависимости от результата проверки значения.
Задача 3
Платформа: CodeWars
Название задачи: Player Contact Manager (Менеджер по связям с игроками)
Ссылка на задачу: https://www.codewars.com/kata/5b203de891c7469b520000b4
Сложность: 7 kyu
Уже решили (На момент написания статьи): 1 606 из 7 783
Тэги: Arrays
Оригинальное описание задачи:
You are the Dungeon Master for a public DnD game at your local comic shop and recently you've had some trouble keeping your players' info neat and organized so you've decided to write a bit of code to help keep them sorted!
The goal of this code is to create an array of objects that stores a player's name and contact number from a given string.
The method should return an empty array if the argument passed is an empty string or `nil`/`None`/`null`.
Examples
player_manager("John Doe, 8167238327, Jane Doe, 8163723827") returns [{player: "John Doe", contact: 8167238327},{player: "Jane Doe", contact: 8163723827}]
player_manager(None) returns []
player_manager("") returns []
player_manager("John Doe, 8167238327, Jane Doe, 8163723827") returns [{"player": "John Doe", "contact": 8167238327}, {"player": "Jane Doe", "contact": 8163723827}]
player_manager(null) returns []
player_manager("") returns []
Have at thee!
Пояснение задачи:
Требуется написать функцию, принимающую строку с записями игроков и контактными номерами, разделёнными запятыми, и преобразовать её в массив объектов, содержащих имя игрока (`player`) и номер телефона (`contact`).
Основные требования:
- Если входная строка пустая или отсутствует вовсе (например, '', `null`, `None`), функция возвращает пустой массив.
- Строка содержит имена и номера телефонов, разделённые запятой, каждое имя и телефон — через пробел.
- Каждое имя и номер связываются в объект, где ключ `player` соответствует имени игрока, а ключ `contact` — номеру телефона.
- Номер телефона представлен целым числом.
Примеры:
Пример 1:
Входная строка: "John Doe, 8167238327, Jane Doe, 8163723827"
Выход: json "player": "John Doe", "contact": 8167238327 "player": "Jane Doe", "contact": 8163723827
Пример 2:
Входная строка: или `null`
Выход: пустой массив `[]`
Пояснение: Функция разбивает входную строку по запятым, извлекает пары имя-телефон, удаляет пробелы и формирует объекты, содержащие имя и телефон. Если входная строка пустая или отсутствует, возвращается пустой массив.
Задача 4
Платформа: CodeWars
Название задачи: Maximum Product (Максимальный продукт)
Ссылка на задачу: https://www.codewars.com/kata/5a4138acf28b82aa43000117
Сложность: 7 kyu
Уже решили (На момент написания статьи): 21 088 из 52 559
Тэги: Fundamentals, Arrays
Оригинальное описание задачи:
Task
Given an array of integers , Find the maximum product obtained from multiplying 2 adjacent numbers in the array.
Notethat the array size is at least 2 and consists a mixture of positive, negative integers and also zeroes.
Examples
- `[1, 2, 3]` returns `6` because the maximum product is obtained from multiplying 2 * 3 = 6
- `[9, 5, 10, 2, 24, -1, -48]` returns `50` because the maximum product is obtained from multiplying 5 * 10 = 50
- `[-23, 4, -5, 99, -27, 329, -2, 7, -921]` returns `-14` because the maximum product is obtained from multiplying -2 * 7 = -14
Пояснение задачи:
Задача состоит в поиске максимального произведения двух соседних чисел в заданном массиве целых чисел.
Основные моменты:
- Массив содержит хотя бы два элемента.
- Элементы массива — целые числа, среди которых могут встречаться положительные, отрицательные и нулевые значения. - Нужно найти пару соседних чисел, произведение которых максимально.
- Если массив содержит несколько одинаковых максимальных произведений, достаточно вернуть любое из них.
Пример: [1, 2, 3]
Максимальное произведение соседних чисел: 2 × 3 = 6 [9, 5, 10, 2, 24, -1, -48]
Максимальное произведение: 5 × 10 = 50 [-23, 4, -5, 99, -27, 329, -2, 7, -921]
Максимальное произведение: -2 × 7 = -14
Решение задачи требует перебора массива и нахождения пары соседних чисел, произведение которых наибольшее.
Важно учитывать, что произведение двух отрицательных чисел даёт положительный результат, который может оказаться наибольшим.
Задача 5
Платформа: CodeWars
Название задачи: Playing with digits (Игра с цифрами)
Ссылка на задачу: https://www.codewars.com/kata/5552101f47fc5178b1000050
Сложность: 6 kyu
Уже решили (На момент написания статьи): 152 714 из 532 337
Тэги: Fundamentals, Mathematics
Оригинальное описание задачи:
Some numbers have funny properties.
For example: 89 --> 8¹ + 9² = 89 * 1
695 --> 6² + 9³ + 5S08;= 1390 = 695 * 2
46288 --> 4³ + 6S08;+ 2S09; + 8S10; + 8S11; = 2360688 = 46288 * 51
Given two positive integers `n` and `p`, we want to find a positive integer `k`, if it exists, such that the sum of the digits of `n` raised to consecutive powers starting from `p` is equal to `k * n`.
In other words, writing the consecutive digits of `n` as `a, b, c, d ...`, is there an integer `k` such that :
(a^p + b^{p + 1} + c^{p + 2} + d^{p + 3} + ...) = n * k
If it is the case we will return `k`, if not return `-1`.
Note:
`n` and `p` will always be strictly positive integers.
Examples:
n = 89; p = 1 ---> 1 since 8¹ + 9² = 89 = 89 * 1
n = 92;p = 1 ---> -1 since there is no k such that 9¹ + 2² equals 92 * k
n = 695; p = 2 ---> 2 since 6² + 9³ + 5S08;= 1390 = 695 * 2
n = 46288; p = 3 ---> 51 since 4³ + 6S08;+ 2S09; + 8S10; + 8S11; = 2360688 = 46288 * 51
Пояснение задачи:
Задача формулируется следующим образом:
Даны два положительных целых числа n и p.
Необходимо найти целое число k, удовлетворяющее условию:
{сумма цифр числа } n, {возведённых в степени от } p { до } p+i, i^2 ≥ 0, равна произведению n на k.
То есть, требуется проверить, существует ли такое k,что:
Σ {i=0}^{m} {цифра}(n)[i]^{{начальная степень}+i} = n ... k
где цифра (n)[i] обозначает i-ю цифру числа n, начиная справа, и m — количество цифр числа n.
Если подходящее k найдено, возвращаем его, иначе возвращаем -1.
Примеры:
- Для n = 89, p = 1: 8^1 + 9^2 = 89 = 89 * 1, значит k = 1
- Для n = 92, p = 1: 9^1 + 2^2 = 13 ≠ 92 * k, значит k = -1
- Для n = 695, p = 2: 6^2 + 9^3 + 5^4 = 1390 = 695 * 2, значит k = 2
- Для n = 46288, p = 3: 4^3 + 6^4 + 2^5 + 8^6 + 8^7 = 2360688 = 46288 * 51, значит k = 51
Задача 6
Платформа: CodeWars
Название задачи: Extract the domain name from a URL (Извлеките доменное имя из URL-адреса)
Ссылка на задачу: https://www.codewars.com/kata/514a024011ea4fb54200004b
Сложность: 5 kyu
Уже решили (На момент написания статьи): 91 995 из 560 694
Тэги: Parsing, Regular Expressions
Оригинальное описание задачи:
Write a function that when given a URL as a string, parses out just the domain name and returns it as a string.
For example:
url = "http://github.com/carbonfive/raygun" -> domain name = "github"
url = "http://www.zombie-bites.com" -> domain name = "zombie-bites"
url = "https://www.cnet.com" -> domain name = cnet"
Пояснение задачи:
Функция принимает строку — полный URL, и извлекает только доменное имя (без протокола, префиксов `www.` и возможных путей).
Пояснение:
1. Извлечь протокол (`http`, `https` и т.д.) и удалить его из строки.
2. Удалить префикс `www.` (если есть). 3. Найти последний разделитель пути `/` или `?` и извлечь всё до него — это будет доменное имя.
Пример работы функции:
def get_domain_name(url): удаляем протокол и www. (если есть) url = url.
replace('http://',) url = url.
replace('https://',) url = url.
replace('www.',)
находим первый путь или вопросительный знак
index = url.find('/')
if index != -1:
url = url[:index]
находим второй путь или вопросительный знак
index = url.find('?')
if index != -1:
url = url[:index]
возвращаем только доменное имя return url
примеры использования:
print(get_domain_name("http://github.com/carbonfive/raygun")) github
print(get_domain_name("http://www.zombie-bites.com")) zombie-bites
print(get_domain_name("https://www.cnet.com")) cnet
Таким образом, функция последовательно обрабатывает URL, удаляя ненужные части и возвращает только интересующий нас домен.
Заключение:
Платформа: CodeWars
Название задачи: Is it a palindrome? (Это палиндром?)
Ссылка на задачу: https://www.codewars.com/kata/57a1fd2ce298a731b20006a4
Сложность: 8 kyu
Уже решили (На момент написания статьи): 75 922 из 194 159
Тэги: Fundamentals
Оригинальное описание задачи:
Write a function that checks if a given string (case insensitive) is a palindrome
A palindrome is a word, number, phrase, or other sequence of symbols that reads the same backwards as forwards, such as `madam` or `racecar`.
Пояснение задачи:
Функция должна проверять, является ли переданная строка палиндромом (независимо от регистра символов).
Пояснение
- Строка считается палиндромом, если она читается одинаково слева направо и справа налево, игнорируя регистр букв.
- Первым шагом будет приведение строки к нижнему регистру (`lowercase`), чтобы сравнение было нечувствительно к регистру.
- Далее нужно сравнить исходную строку с её обратным вариантом (полученным методом обращения символов или срезом строки).
Примеры:
is_palindrome("Madam") - True
is_palindrome("RaceCar") - True
is_palindrome("hello") - False
is_palindrome("a") - True
Алгоритм:
1. Привести строку к нижнему регистру.
2. Проверить равенство строки самой себе, прочитанной задом наперёд.
Пример реализации:
def is_palindrome(s):
Приводим строку к нижнему регистру
s_lower = s.lower()
Сравниваем строку с её обращением
return s_lower == s_lower[::-1]
Платформа: CodeWars
Название задачи: The 'if' function (Функция "если")
Ссылка на задачу: https://www.codewars.com/kata/54147087d5c2ebe4f1000805
Сложность: 8 kyu
Уже решили (На момент написания статьи): 39 105 из 112 039
Тэги: Functional Programming, Fundamentals
Оригинальное описание задачи:
Create a function that takes three arguments:
1. a value to be evaluated for truthiness.
2. a function to execute if the first argument is truthy.
3. a function to execute if the first argument is falsy.
If the first argument evaluates to _truthy_, call the second argument (a function).If it evaluates to _falsy_, call the third argument instead (also a function).
In statically-typed languages,the first argument will be a boolean. In dynamically-typed languages that attribute a truth value to all expressions, it may be of any type.
Пояснение задачи:
Функция должна принимать три аргумента:
1. Проверяемое значение — любое выражение, которое может быть проверено на истинность (`truthiness`). Например, число, строка, объект, массив или любой другой тип данных.
2. Функция для выполнения, если проверяемое значение является истинным (`truthy`).
3. Функция для выполнения, если проверяемое значение ложно (`falsy`).
Алгоритм работы функции прост:
- Проверяется условие истинности первого аргумента.
- Если аргумент оценивается как `truthy`, вызывается вторая переданная функция.
- Если аргумент оценивается как `falsy`, вызывается третья переданная функция.
Примеры использования:
Пример 1:
проверка числа
def print_positive(x):
print(f'Число положительное: {x}
def print_negative(x): print(f'Число отрицательное:
{x}
result = check_value(5, print_positive, print_negative)
Вывод: Число положительное: 5 result = check_value(-3, print_positive, print_negative) Вывод: Число отрицательное: -3
Пример 2:
проверка строки
def show_string(s): print(f'Введена строка: {s}
def show_empty(): print('Пустая строка')
result = check_value("hello", show_string, show_empty)
Вывод: Введена строка: hello result = check_value("", show_string, show_empty)
Вывод: Пустая строка
Таким образом, функция позволяет гибко выбирать поведение программы в зависимости от результата проверки значения.
Платформа: CodeWars
Название задачи: Player Contact Manager (Менеджер по связям с игроками)
Ссылка на задачу: https://www.codewars.com/kata/5b203de891c7469b520000b4
Сложность: 7 kyu
Уже решили (На момент написания статьи): 1 606 из 7 783
Тэги: Arrays
Оригинальное описание задачи:
You are the Dungeon Master for a public DnD game at your local comic shop and recently you've had some trouble keeping your players' info neat and organized so you've decided to write a bit of code to help keep them sorted!
The goal of this code is to create an array of objects that stores a player's name and contact number from a given string.
The method should return an empty array if the argument passed is an empty string or `nil`/`None`/`null`.
Examples
player_manager("John Doe, 8167238327, Jane Doe, 8163723827") returns [{player: "John Doe", contact: 8167238327},{player: "Jane Doe", contact: 8163723827}]
player_manager(None) returns []
player_manager("") returns []
player_manager("John Doe, 8167238327, Jane Doe, 8163723827") returns [{"player": "John Doe", "contact": 8167238327}, {"player": "Jane Doe", "contact": 8163723827}]
player_manager(null) returns []
player_manager("") returns []
Have at thee!
Пояснение задачи:
Требуется написать функцию, принимающую строку с записями игроков и контактными номерами, разделёнными запятыми, и преобразовать её в массив объектов, содержащих имя игрока (`player`) и номер телефона (`contact`).
Основные требования:
- Если входная строка пустая или отсутствует вовсе (например, '', `null`, `None`), функция возвращает пустой массив.
- Строка содержит имена и номера телефонов, разделённые запятой, каждое имя и телефон — через пробел.
- Каждое имя и номер связываются в объект, где ключ `player` соответствует имени игрока, а ключ `contact` — номеру телефона.
- Номер телефона представлен целым числом.
Примеры:
Пример 1:
Входная строка: "John Doe, 8167238327, Jane Doe, 8163723827"
Выход: json "player": "John Doe", "contact": 8167238327 "player": "Jane Doe", "contact": 8163723827
Пример 2:
Входная строка: или `null`
Выход: пустой массив `[]`
Пояснение: Функция разбивает входную строку по запятым, извлекает пары имя-телефон, удаляет пробелы и формирует объекты, содержащие имя и телефон. Если входная строка пустая или отсутствует, возвращается пустой массив.
Платформа: CodeWars
Название задачи: Maximum Product (Максимальный продукт)
Ссылка на задачу: https://www.codewars.com/kata/5a4138acf28b82aa43000117
Сложность: 7 kyu
Уже решили (На момент написания статьи): 21 088 из 52 559
Тэги: Fundamentals, Arrays
Оригинальное описание задачи:
Task
Given an array of integers , Find the maximum product obtained from multiplying 2 adjacent numbers in the array.
Notethat the array size is at least 2 and consists a mixture of positive, negative integers and also zeroes.
Examples
- `[1, 2, 3]` returns `6` because the maximum product is obtained from multiplying 2 * 3 = 6
- `[9, 5, 10, 2, 24, -1, -48]` returns `50` because the maximum product is obtained from multiplying 5 * 10 = 50
- `[-23, 4, -5, 99, -27, 329, -2, 7, -921]` returns `-14` because the maximum product is obtained from multiplying -2 * 7 = -14
Пояснение задачи:
Задача состоит в поиске максимального произведения двух соседних чисел в заданном массиве целых чисел.
Основные моменты:
- Массив содержит хотя бы два элемента.
- Элементы массива — целые числа, среди которых могут встречаться положительные, отрицательные и нулевые значения. - Нужно найти пару соседних чисел, произведение которых максимально.
- Если массив содержит несколько одинаковых максимальных произведений, достаточно вернуть любое из них.
Пример: [1, 2, 3]
Максимальное произведение соседних чисел: 2 × 3 = 6 [9, 5, 10, 2, 24, -1, -48]
Максимальное произведение: 5 × 10 = 50 [-23, 4, -5, 99, -27, 329, -2, 7, -921]
Максимальное произведение: -2 × 7 = -14
Решение задачи требует перебора массива и нахождения пары соседних чисел, произведение которых наибольшее.
Важно учитывать, что произведение двух отрицательных чисел даёт положительный результат, который может оказаться наибольшим.
Платформа: CodeWars
Название задачи: Playing with digits (Игра с цифрами)
Ссылка на задачу: https://www.codewars.com/kata/5552101f47fc5178b1000050
Сложность: 6 kyu
Уже решили (На момент написания статьи): 152 714 из 532 337
Тэги: Fundamentals, Mathematics
Оригинальное описание задачи:
Some numbers have funny properties.
For example: 89 --> 8¹ + 9² = 89 * 1
695 --> 6² + 9³ + 5S08;= 1390 = 695 * 2
46288 --> 4³ + 6S08;+ 2S09; + 8S10; + 8S11; = 2360688 = 46288 * 51
Given two positive integers `n` and `p`, we want to find a positive integer `k`, if it exists, such that the sum of the digits of `n` raised to consecutive powers starting from `p` is equal to `k * n`.
In other words, writing the consecutive digits of `n` as `a, b, c, d ...`, is there an integer `k` such that :
(a^p + b^{p + 1} + c^{p + 2} + d^{p + 3} + ...) = n * k
If it is the case we will return `k`, if not return `-1`.
Note:
`n` and `p` will always be strictly positive integers.
Examples:
n = 89; p = 1 ---> 1 since 8¹ + 9² = 89 = 89 * 1
n = 92;p = 1 ---> -1 since there is no k such that 9¹ + 2² equals 92 * k
n = 695; p = 2 ---> 2 since 6² + 9³ + 5S08;= 1390 = 695 * 2
n = 46288; p = 3 ---> 51 since 4³ + 6S08;+ 2S09; + 8S10; + 8S11; = 2360688 = 46288 * 51
Пояснение задачи:
Задача формулируется следующим образом:
Даны два положительных целых числа n и p.
Необходимо найти целое число k, удовлетворяющее условию:
{сумма цифр числа } n, {возведённых в степени от } p { до } p+i, i^2 ≥ 0, равна произведению n на k.
То есть, требуется проверить, существует ли такое k,что:
Σ {i=0}^{m} {цифра}(n)[i]^{{начальная степень}+i} = n ... k
где цифра (n)[i] обозначает i-ю цифру числа n, начиная справа, и m — количество цифр числа n.
Если подходящее k найдено, возвращаем его, иначе возвращаем -1.
Примеры:
- Для n = 89, p = 1: 8^1 + 9^2 = 89 = 89 * 1, значит k = 1
- Для n = 92, p = 1: 9^1 + 2^2 = 13 ≠ 92 * k, значит k = -1
- Для n = 695, p = 2: 6^2 + 9^3 + 5^4 = 1390 = 695 * 2, значит k = 2
- Для n = 46288, p = 3: 4^3 + 6^4 + 2^5 + 8^6 + 8^7 = 2360688 = 46288 * 51, значит k = 51
Платформа: CodeWars
Название задачи: Extract the domain name from a URL (Извлеките доменное имя из URL-адреса)
Ссылка на задачу: https://www.codewars.com/kata/514a024011ea4fb54200004b
Сложность: 5 kyu
Уже решили (На момент написания статьи): 91 995 из 560 694
Тэги: Parsing, Regular Expressions
Оригинальное описание задачи:
Write a function that when given a URL as a string, parses out just the domain name and returns it as a string.
For example:
url = "http://github.com/carbonfive/raygun" -> domain name = "github"
url = "http://www.zombie-bites.com" -> domain name = "zombie-bites"
url = "https://www.cnet.com" -> domain name = cnet"
Пояснение задачи:
Функция принимает строку — полный URL, и извлекает только доменное имя (без протокола, префиксов `www.` и возможных путей).
Пояснение:
1. Извлечь протокол (`http`, `https` и т.д.) и удалить его из строки.
2. Удалить префикс `www.` (если есть). 3. Найти последний разделитель пути `/` или `?` и извлечь всё до него — это будет доменное имя.
Пример работы функции:
def get_domain_name(url): удаляем протокол и www. (если есть) url = url.
replace('http://',) url = url.
replace('https://',) url = url.
replace('www.',)
находим первый путь или вопросительный знак
index = url.find('/')
if index != -1:
url = url[:index]
находим второй путь или вопросительный знак
index = url.find('?')
if index != -1:
url = url[:index]
возвращаем только доменное имя return url
примеры использования:
print(get_domain_name("http://github.com/carbonfive/raygun")) github
print(get_domain_name("http://www.zombie-bites.com")) zombie-bites
print(get_domain_name("https://www.cnet.com")) cnet
Таким образом, функция последовательно обрабатывает URL, удаляя ненужные части и возвращает только интересующий нас домен.
Кухня закрывается на перерыв. Надеюсь, алгоритмическое меню пришлось вам по вкусу и оставило приятное послевкусие — спасибо, что были нашим гостем!
Приглашаю за общий стол: делитесь рецептами решений в комментариях, предлагайте свои специи и ингредиенты — и сохраняйте ту самую тёплую атмосферу, в которой любое блюдо получается вкусным.
Следующее меню — уже готовится. Приходите голодными.
Вступайте в нашу телеграмм-группу Инфостарт