Кодинг-марафон. Задача № 7.
Фермеру нужна ваша помощь, чтобы узнать количество животных, спрятанных в заданной строке txt.
У нас есть список названий животных:
animals = ["dog", "cat", "bat", "cock", "cow", "pig",
"fox", "ant", "bird", "lion", "wolf", "deer", "bear",
"frog", "hen", "mole", "duck", "goat"] Напишите функцию, которая будет принимать строку txt и возвращать максимальное количество названий животных, которые возможно собрать из символов строки.
txt = "goatcode" count_animals(txt) ➞ 2 # первое животное = "dog" # оставшиеся символы в строке = "atcoe", # второе животное = "cat". # count = 2 (верно) # если взять сперва "goat", # оставшиеся символы в строке = "code", # т.е. больше нельзя составить имен животных # count = 1 (неверно)
count_animals("goatcode") ➞ 2
# "dog", "cat"
count_animals("cockdogwdufrbir") ➞ 4
# "cow", "duck", "frog", "bird"
count_animals("dogdogdogdogdog") ➞ 5 animals = ["dog", "cat", "bat", "cock", "cow", "pig",
"fox", "ant", "bird", "lion", "wolf", "deer", "bear",
"frog", "hen", "mole", "duck", "goat"]
def count_animals(txt):
counts = []
def f(t, c):
for a in animals:
s = t
for x in a: s = s.replace(x, "", 1)
if len(s) + len(a) == len(t): f(s, c + 1)
counts.append(c)
f(txt, 0)
return max(counts) Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…