7-273 判断回文串
分数 10
作者 usx程序设计类课程组
单位 绍兴文理学院
若一个串正向看和反向看等价,则称做回文串。例如:t,abba,xyzyx均是回文串。
给出一个长度不超过60的字符串,判断是否是回文串。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每行输入一个长度不超过60的字符串(串中不包含空格)。
输出格式:
对于每组测试数据,判断是否是回文串,若是输出“Yes”,否则输出“No”。引号不必输出。
输入样例:
2
abba
abc
输出样例:
Yes
No
#include <stdio.h>
int main(){
int T;
char ch[70];
scanf("%d", &T);
for(int t = 1; t <= T; t++){ //测试组
int flag = 0; //标记
scanf("%s", &ch);
int len = strlen(ch); //字符串长度
for(int i = 0; i < strlen(ch)/2; i++){ //判断是否是回文串
if(ch[i] != ch[len-1]){
flag = 1;
goto there; //无条件跳转到指定行去执行语句
}
len--;
}
there:if(flag == 0) //是回文串
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
解题思路:
用for循环将字符串的第一个和最后一个,第二个和倒数第二个,以此类推去进行比较,只要有一个不相等就不是回文串,且标记下来,用goto跳出循环且到指定行执行语句
归属知识点:
循环结构