思路
Func(char c): 用于判断传入是否为大写字母或数字 第一步: 先将小写字母转化为大写字母 第二步: 调整两指针,使得其指向字母或数字 第三步: 判断两指针内容是否相等. 若相等则继续, 若不相等则ret赋值为false, 跳出while
代码
bool Func(char c){
bool ret=false;
if(c>=48 && c<=57) ret=true;
if(c>=65 && c<=90) ret=true;
return ret;
}
bool isPalindrome(char * s){
int l=strlen(s);
char *start=s,*end=s+(l-1);
bool ret=true;
for(int i=0;i<l;i++){if(start[i]>=97 && start[i]<=122) start[i]-=32;}
do{
while(start<end && !Func(*start)){start++;}
while(start<end && !Func(*end)){end--;}
if(*start!=*end){ret=false;break;}
else{start++;end--;}
}while(start<end);
return ret;
}
|