#include using std::string; bool strict_palindrome(string::const_iterator left, string::const_iterator right) { while (left < right) { if (*left != *right) return false; ++left; --right; } return true; } class Solution { public: bool validPalindrome(string s) { string::const_iterator left = s.cbegin(); string::const_iterator right = s.cend() - 1; while (left < right) { if (*left != *right) return strict_palindrome(left, right - 1) || strict_palindrome(left + 1, right); ++left; --right; } return true; } };