From ce1d40841a662386522d3c52fe413d424e42e32c Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 21 May 2020 15:14:10 +0800 Subject: import(solutions): Add problem 680 . --- works/solutions/cpp/680.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 works/solutions/cpp/680.cpp (limited to 'works/solutions/cpp/680.cpp') diff --git a/works/solutions/cpp/680.cpp b/works/solutions/cpp/680.cpp new file mode 100644 index 0000000..21d150f --- /dev/null +++ b/works/solutions/cpp/680.cpp @@ -0,0 +1,35 @@ +#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; + } +}; -- cgit v1.2.3