Algorithm Problem: Ranking a Poker Hand

This was a fun problem: create a program to rank a 5-card poker hand, e.g. “Royal Flush”. ¬†Given two poker hands, be able to determine which one is the winner.

My first implementation took about an hour, but failed to include code for tie-breaking hands with equal rankings. ¬†It wasn’t difficult to modify my original method to return a 2-tuple that also contained a list of card values that could be compared for breaking a tie.

The result is a nice library for ranking a poker hand, including test cases to cover all of the logic.

My source code can be downloaded here.