1Y
回文串判断
水
#include<string.h>
#include<stdio.h>
char done[]="DONE";
int can(char x){
if(x>='A'&&x<='Z')return 1;
if(x>='a'&&x<='z')return 1;
if(x=='\0')return 1;
return 0;
}
char f(char x){
if(x>='a'&&x<='z')return x-'a'+'A';
return x;
}
int main(){
char s[1010];
while(gets(s)!=NULL){
if(strcmp(s,done)==0)break;
int i=0,j=strlen(s)-1,len=strlen(s),flag=1;
while(!can(s[i]))i++;
while(!can(s[j]))j--;
while(i<j){
// printf("%d %d\n",i,j);
if(f(s[i])!=f(s[j]))flag=0;
if(!flag)break;
i++;j--;
while(!can(s[i]))i++;
while(!can(s[j]))j--;
}
if(flag)printf("You won't be eaten!\n");
else printf("Uh oh..\n");
}
return 0;
}
本文介绍了一个简单的回文串判断程序实现。该程序通过预处理输入字符串,忽略非字母字符并统一转换为大写,然后比较字符串首尾来判断是否为回文。此方法适用于快速判断英文字符串是否为回文。
775

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



