LeetCode:125. Valid Palindrome驗證迴文串(C語言)

題目描述:
給定一個字符串,驗證它是否是迴文串,只考慮字母和數字字符,可以忽略字母的大小寫。

說明:本題中,我們將空字符串定義爲有效的迴文串。

示例 1:

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

示例 2:

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

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/valid-palindrome
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
解答:

bool isPalindrome(char * s)
{
    if(strlen(s) <= 1) 
    {
        return true;
    }

    char *pTail = NULL;
    char *pFirst = NULL;
    char *res = (char*)malloc(sizeof(char) * strlen(s));
    int len = strlen(s);
    int i = 0;
    int count = 0;

    memset(res,0,strlen(s));

    for(i = 0;i < len;i++)
    {
        if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= '0' && s[i] <= '9'))
        {  
            if((s[i] >= 'A' && s[i] <= 'Z'))
            {
                res[count] = s[i] + 32;
            }
            else
            {
                res[count] = s[i];
            }
            
            count++;
        }
    }

    for(i = 0;i < count/2;i++)
    {
        if(res[i] != res[count - i - 1])
        {
            free(res);
            return false;
        }
    }

    free(res);
    return true;
}

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章