http://www.nxcoding.com/archives/leetcode-daily-problem-680-valid-palindrome-ii