检查回文字符串

bool isPalindrome(string s) {
        int s_len = s.length();
        bool is = true;
        for(int i = 0, j = s_len-1; i<s_len && j>=0;){
            //大小写统一;
            s[i] = s[i]>='A'&&s[i]<='Z' ? s[i]+32:s[i];
            s[j] = s[j]>='A'&&s[j]<='Z' ? s[j]+32:s[j];
            //跳过空格及其他字符;
            if(!((s[i]>='a' && s[i]<='z') || (s[i]>='0' && s[i]<='9'))){
                i++;
                continue;
            }
            if(!((s[j]>='a' && s[j]<='z') || (s[j]>='0' && s[j]<='9'))){
                j--;
                continue;
            }
            //判断字符是否一致:
            if(s[i] == s[j]){
                i++;
                j--;
            }
            else{
                is = false;
                break;
            }
        }
        return is;    
    }

猜你喜欢

转载自blog.csdn.net/mixiaoxinmiss/article/details/81096112
今日推荐