class Solution { public: bool IsAlphaNum(char c) { return (('a' <= c) && (c <= 'z')) || (('A' <= c) && (c <= 'Z')) || (('0' <= c) && (c <= '9')); } void Transform(string& s) { size_t j = 0; for (size_t i = 0; i < s.size(); ++i) { if (IsAlphaNum(s[i])) { s[j] = std::tolower(s[i]); j++; } } s.resize(j); } bool isPalindrome(string s) { Transform(s); for (size_t i = 0; i < s.size()/2; ++i) { if (s[i] != s[s.size()-i-1]) { return false; } } return true; } };