给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false
int isPalindrome(char * s){
int s_len = strlen(s);
int i, j = 0, flag = 1;
char *new_s = (char*)malloc(sizeof(char)*s_len);
for(i = 0; i < s_len; i ++)
{
if(s[i] >= 'A' && s[i] <= 'Z')
new_s[j++] = s[i] + 32;
else if(s[i] >= 'a' && s[i] <= 'z')
new_s[j++] = s[i];
else if(s[i] >= '0'&& s[i] <= '9')
new_s[j++] = s[i];
else
continue;
}
for(i = 0; i < j/2; i++)
{
if(new_s[i] != new_s[j-1-i])
{
flag = 0;
break;
}
}
free(new_s);
if(flag)
return true;
else
return false;
}

2107

被折叠的 条评论
为什么被折叠?



