题目描述:
回文串是从左到右或者从右到左读起来都一样的字符串,试编程判别一个字符串是否为回文串。
输出格式
判别输入的字符串是否为回文串,是输出"Y",否则输出"N"。
题目思路:
如果用一般方法可以写出来,但是过程比较繁琐。
换个思路想一想,回文就是正反读起来一样,那我们可以将字符串a copy一份给字符串b,然后将a的头与b的尾比较,相当于是a从头依次往后,b从尾依次往前,一一比较。如下图
可能一下比较难懂,但是你可以去多想想!!!
下面给出代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[100], b[100];
int i,len;
gets(a);
len = strlen(a);
strcpy(b, a);
for (i = 0; i <= len-1; i++)
{//下标从0开始的,注意len的范围
if (a[i] != b[len -1- i])
{
printf("N");
break;
}
}
if (i == len)//注意当i循环到最后一次,是加一之后才退出的
printf("Y");
}