Сколько животных?

Фермеру нужна ваша помощь, чтобы узнать количество животных, спрятанных в заданной строке txt.
У нас есть список названий животных:
Напишите функцию, которая будет принимать строку txt и возвращать максимальное количество названий животных, которые возможно собрать из символов строки.

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)


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: