題目描述:
給定一個字符串,驗證它是否是迴文串,只考慮字母和數字字符,可以忽略字母的大小寫。
說明:本題中,我們將空字符串定義爲有效的迴文串。
示例 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;
}
運行結果: