给定一个字符串,请仅考虑字母和数字字符并忽略大小写,从而确定它是否是回文。
例子:
"A man, a plan, a canal: Panama" 是回文。
"race a car" 不是回文。
bool circle_str(const char * pstr){
if(!pstr){
return false;
}
bool bequal = false;
unsigned int i=0, j=strlen(pstr)-1;
int delta='A'-'a';
while(i<j){
if(!(('9'>=pstr[i] && pstr[i]>='0') ||\
('z'>=pstr[i] && pstr[i]>='a') ||\
('Z'>=pstr[i] && pstr[i]>='A')
)){
i++;
continue;
}
if(!(('9'>=pstr[j] && pstr[j]>='0') ||\
('z'>=pstr[j] && pstr[j]>='a') ||\
('Z'>=pstr[j] && pstr[j]>='A')
)){
j--;
continue;
}
if(pstr[i] == pstr[j] ||\
pstr[i]+delta == pstr[j] ||\
pstr[i] == pstr[j]+delta;
){
bequal = t