Palindromes _easy version
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 35293 Accepted Submission(s): 21480Problem Description“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。Input输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。Output如果一个字符串是回文串,则输出"yes",否则输出"no".Sample Input4 level abcde noon haha
Sample Outputyes no yes no
//这题出现error的情况主要是后半段的数学问题,strlen运用的时候是不会读最后的‘\0’的
//一开始我是在嵌套的if语句里用了个开关函数,来测试是否每一个都有对应的字符,但是失败了= =,应该是用到的字符太多比较麻烦,没有算过来= =,等下把那个错的也贴在下面,然后那个运行之后是全部都是no= =
#include<stdio.h>#include<string.h>int main(){ int n,m,i,j; char str[100]; while(EOF!=scanf("%d",&n)) { getchar();//读掉换行符 while(n--) { gets(str); m=strlen(str);//第一次用strlen函数 for(i=0;i<m/2;i++)//只需要测试一半 { if(str[i]!=str[m-i-1]) break; } if(i==m/2) printf("yes\n"); else printf("no\n"); } } return 0;}
//错误版
#include<stdio.h>
#include<string.h>
int main(){
int n,m,i,j;
char str[100];
while(EOF!=scanf("%d",&n))
{
getchar();
while(n--)
{
gets(str);
m=strlen(str);
for(i=0;i<(m/2);i++)
{
if(str[i]==str[m-i-1])
j++;
}
if(j==(m/2))
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
【网络赛前必刷题】杭电 2029 回文串判定
最新推荐文章于 2022-03-27 23:08:32 发布