题目描述
读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
输入
一行字符串,长度不超过255。
输出
如果是回文串,输出“YES”,否则输出“NO”。
样例输入
12321
样例输出
YES
代码一(使用两个数组):
#include<stdio.h>
#include<string.h>
int main()
{
char a[260],b[260];
int i,j=0,len,count=0;
scanf("%s",a);
len=strlen(a);
for(i=len-1;i>=0;i--)
{
b[j++]=a[i];
}
for(int k=0; k<len; k++)
{
if(a[k]==b[k])
{
count++;
}
else break;
}
if(count==len){
printf("YES\n");
}
else{
printf("NO\n");
}
return 0;
}
代码二(使用一个数组):
#include<stdio.h>
#include<string.h>
#include<stdbool.h>
bool judge(char str[]){
int len=strlen(str);
for(int i=0;i<len/2;i++){
if(str[i]!=str[len-1-i]){
return false;//不是回文串
}
}
return true;//是回文串
}
int main()
{
char str[260];
while(gets(str)){
bool flag=judge(str);
if(flag==true){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}