leetcode-125-验证回文串

leetcode-125-验证回文串

string char_type(char input) {
    if (input > 47 && input < 58) return "numbers";
    else if (input > 64 && input < 91) return "LETTERS";
    else if (input > 96 && input < 123) return "letters";
    else return "others";
}

class Solution {
public:
    bool isPalindrome(string s) {
        if (s == "") return true;
        int N = s.length();
        int left = 0, right = N - 1;
        while (left < right) {
            while (char_type(s[left]) == "others") {
                left++;
                if (left >= right) return true;
            }
            while (char_type(s[right]) == "others") {
                right--;
            }
            
            if (char_type(s[left]) == "letters") {
                s[left] = s[left] - 32;
            }
            if (char_type(s[right]) == "letters") {
                s[right] = s[right] - 32;
            }
            if (s[left] != s[right]) return false;
            else {
                left++;
                right--;
            }
        }
        return true;
    }
};