Pocket Gems Interview Question

One coding problem each round as well as several follow-ups.