1. 程式人生 > >LeetCode——驗證迴文串

LeetCode——驗證迴文串

 bool isPalindrome(string s) {
        
        int lenght = s.size();
        bool i_is_char;
        bool j_is_char;
        bool i_is_num;
        bool j_is_num;
            
        int i = 0; 
        int j = lenght - 1;
        while(i <= j)
        {
            i_is_char = (s[i] >= 'a' & s[i] <= 'z') | (s[i] >= 'A' & s[i] <= 'Z');
            j_is_char = (s[j] >= 'a' & s[j] <= 'z') | (s[j] >= 'A' & s[j] <= 'Z');
            i_is_num  =   s[i] <= '9' & s[i] >= '0';
            j_is_num  =   s[j] <= '9' & s[j] >= '0';
            if(!(i_is_char | i_is_num))
            {
                i++;
                continue;
            }
            else if(!(j_is_char | j_is_num))
            {    
                j--;
                continue;
            }
            else 
            {
                if(s[i] == s[j])
                {
                    i++;
                    j--;
                }
                else if ( abs(s[i] - s[j]) == 32 & i_is_char & j_is_char)
                {
                    i++;
                    j--;
                }
                else
                    return false;
            }
        }
        return true;
    }