给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。
本题中,将空字符串定义为有效的 回文串 。
示例 1:
输入: s = “A man, a plan, a canal: Panama”
输出: true
解释:“amanaplanacanalpanama” 是回文串
示例 2:
输入: s = “race a car”
输出: false
解释:“raceacar” 不是回文串
这题比较简单,首先,我们对字符串进行处理,然后进行判断。
bool isPalindrome(char * s){
int s_len=strlen(s);
int i,j;
int p=0;
for(i=0;i<s_len;i++){
if(s[i]>='A'&&s[i]<='Z'){
s[p++]=s[i]+32;
}
else if(s[i]>='a'&&s[i]<='z'){
s[p++]=s[i];
}
else if(s[i]>='0'&&s[i]<='9'){
s[p++]=s[i];
}
else continue;
}
for(i=0;i<p;i++){
printf("%c ",s[i]);
}
//if(p==1)return true;
for(i=0;i<p/2;i++){
if(s[i]!=s[p-i-1]) return false;
}
return true;
}