Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample Input
4 level abcde noon haha
Sample Output
yes no yes no Problem Description “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。 Input 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。 Output 如果一个字符串是回文串,则输出"yes",否则输出"no". Sample Input 4 level abcde noon haha Sample Output yes no yes no
思路:在一个字符串数组数组里面判断是不是回文,操作起来比较麻烦,只有在两个数组里面,一个是正序输入数组a【100】
里面,另一个数组b【100】存的是a【100】的逆序,这样只要比较a数组是否和b数组相等,即可判断是不是回文
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,t1,len,j;
char a[100],b[100]; //定义数组a和b
while(scanf("%d",&n)==1)
{
getchar(); //吸收"\n"
while(n--)
{
int count=0;
t1=0; //统计a数组和b数组是否全部相等
gets(a);
len=strlen(a);
for(j=len-1;j>=0;j--)
{
b[count++]=a[j];
}
for(i=0;i<len;i++)
{
if(a[i]==b[i])
t1++;
}
if(t1==len)
printf("yes\n"); //如果a和b相等输出yes
else
printf("no\n");} //否则输出no
}
return 0;
}