I liked Elements of Abstract Algebra by Allan ClarkeClark, which is mainly a problem book with a moderate amount of exposition, but the problems are so well-chosen that a diligent undergraduate student working through all of them will come out with a solid knowledge of group theory, classical ring theory, and Galois theory.