Count word dominators def count_word_dominators(words): If you already solved the earlier count_dominators problem, you might notice that even though the problem was originally stated for lists of integers, the logic of domination did not depend on this fact in any way. As long as the individual elements can be compared with each other for order, the Pythonic spirit of duck typing allows the very same count_dominators function to handle a list of strings just as smoothly as it would handle a list of integers! For example, the function call count_dominators(['dog','emu','cat','bee']) would return 3, since 'emu', 'cat' and 'bee' dominate all words coming after them in the list when using the lexicographic order comparison. If your count_dominators function does not already pass this hurdle, try to rewrite it to contain no baked-in assumptions about elements being specifically integers. However, things become more interesting if we define domination between words of equal length with a rule that says that for a word to dominate another word, for more than half of the positions the character in the first word is strictly greater than the corresponding character in the other word. Note also the intentional wording “more than half” to break ties between words of even length such as 'aero' and 'tram', so that no two words can ever both dominate each other.
Count word dominators
def count_word_dominators(words):
If you already solved the earlier count_dominators problem, you might notice that even though the problem was originally stated for lists of integers, the logic of domination did not depend on this fact in any way. As long as the individual elements can be compared with each other for order, the Pythonic spirit of duck typing allows the very same count_dominators function to handle a list of strings just as smoothly as it would handle a list of integers! For example, the function call count_dominators(['dog','emu','cat','bee']) would return 3, since 'emu', 'cat'
and 'bee' dominate all words coming after them in the list when using the lexicographic order comparison. If your count_dominators function does not already pass this hurdle, try to rewrite it to contain no baked-in assumptions about elements being specifically integers.
However, things become more interesting if we define domination between words of equal length with a rule that says that for a word to dominate another word, for more than half of the positions
the character in the first word is strictly greater than the corresponding character in the other word. Note also the intentional wording “more than half” to break ties between words of even length such as 'aero' and 'tram', so that no two words can ever both dominate each other.
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 2 images