This solution basically just follows the rules for the election as given in the problem statement.
First, it creates a set of remaining candidates, then it enters a while loop which will not terminate
until either a winner is found, or the set of remaining candidates becomes empty.

For each iteration of the loop, we count up the number of first place votes that each active candidate
has received. If any of the candidates receives more than half of the possible votes, then they are
declared the winner. Be careful in checking for a majority, the equation on lines 34 and 35 is easy
to get wrong.

If there is no clear winner, then we look for the least number of first place votes, and remove any
candidate that has that number of first place votes. Here, we remove those candidates from both
the active candidates set, as well as from all the ballots. The easiest, although perhaps not the most
efficient way is to do the replacement on line 58.

Finally, if there are no more active candidates, then we return the empty string.

Thank you for taking the time to read this solution. I welcome
any feedback you may have.