Leetcode算法题(C语言)17--验证回文字符串

题目:验证回文字符串

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

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: “A man, a plan, a canal: Panama”
输出: true

示例 2:

输入: “race a car”
输出: false

代码实现:

bool isPalindrome(char* s) {
    int len = strlen(s);
    int j = 0;
    
    char array[len + 1];
    
    /* 将原字符串中的字母和数字拷贝到新字符串,并将其转换成小写字母 */
    for(int i = 0; i < len; i++)
    {
        if(isalnum(s[i]))
        {
            array[j] = tolower(s[i]);
            j++;
        }
    }
    array[j] = '\0';
    /* 获取新字符串长度 */
    len = strlen(array);
    /* 判断是否回文 */
    for(int i = 0; i < len/2; i++)
    {
        if(array[i] != array[len - i - 1])
            return false;
    }
    return true;
}

你可能感兴趣的:(Leetcode算法题)