diff --git a/solution/0100-0199/0125.Valid Palindrome/Solution.cpp b/solution/0100-0199/0125.Valid Palindrome/Solution.cpp new file mode 100644 index 0000000000000..a4960cc4db17d --- /dev/null +++ b/solution/0100-0199/0125.Valid Palindrome/Solution.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + bool isPalindrome(string s) { + int left = 0, right = s.size() - 1; + while (left < right) { + if (!isAlphaNum(s[left])) ++left; + else if (!isAlphaNum(s[right])) --right; + else if ((s[left] + 32 - 'a') % 32 != (s[right] + 32 - 'a') % 32) return false; + else { + ++left; + --right; + } + } + return true; + } + +private: + bool isAlphaNum(char &ch) { + if (ch >= 'a' && ch <= 'z') return true; + if (ch >= 'A' && ch <= 'Z') return true; + if (ch >= '0' && ch <= '9') return true; + return false; + } +}; \ No newline at end of file