Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- bool IsLetterOrDigit(char ch) {
- return ('a' <= ch && ch <= 'z') ||
- ('A' <= ch && ch <= 'Z') ||
- ('0' <= ch && ch <= '9');
- }
- bool isPalindrome(string s) {
- if (s.size() < 2) return true;
- int l = 0;
- int r = s.size() - 1;
- while(l < r) {
- while (l < r && !IsLetterOrDigit(s[l])) {
- ++l;
- continue;
- }
- while (l < r && !IsLetterOrDigit(s[r])) {
- --r;
- continue;
- }
- char sl = s[l];
- char sr = s[r];
- if ('A' <= sr && sr <= 'Z') sr += 'a' - 'A';
- if ('A' <= sl && sl <= 'Z') sl += 'a' - 'A';
- if (sl != sr) return false;
- ++l;
- --r;
- }
- return true;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement