【刷题】125. 验证回文串——给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

题目:125. 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
在这里插入图片描述

解答:

bool isPalindrome(char * s)
{
    
    
    // 左指针
    char* left=s;
    // 右指针
    char* right=s;
    // 使得右指针指向最后一个字母
    int count=strlen(s)-1;
    while(count--)
    {
    
    
        right++;
    }
    while(left<right)
    {
    
    
        // 左指针找到字母或数字字符
        while(left<right && !isalnum(*left))
        {
    
    
            left++;
        }
        // 右指针找到字母或数字字符
        while(left<right && !isalnum(*right))
        {
    
    
            right--;
        }
        // 如果左指针为大写字母,转化为小写字母
        if(*left>='A'&&*left<='Z')
        {
    
    
            *left+=32;
        }
        // 如果右指针为大写字母,转化为小写字母
        if(*right>='A'&&*right<='Z')
        {
    
    
            *right+=32;
        }
        // 左右指针进行对比
        if(*left!=*right)
        {
    
    
            return false;
        }
        left++;
        right--;
    }
    return true;
}

猜你喜欢

转载自blog.csdn.net/m0_46613023/article/details/113951734