http://leetcode.com/onlinejudge#question_88
http://leetcode.com/onlinejudge#question_88