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