本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
函数接口定义:
bool palindrome( char *s );
函数palindrome
判断输入字符串char *s
是否为回文。若是则返回true
,否则返回false
。
裁判测试程序样例:
#include#include #define MAXN 20typedef enum {false, true} bool;bool palindrome( char *s );int main(){ char s[MAXN]; scanf("%s", s); if ( palindrome(s)==true ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s); return 0;}/* 你的代码将被嵌在这里 */
输入样例1:
thisistrueurtsisiht
输出样例1:
Yesthisistrueurtsisiht
输入样例2:
thisisnottrue
输出样例2:
Nothisisnottrue
#include#include #define MAXN 20typedef enum { false, true} bool;/*typedef在计算机编程语言中用来为复杂的声明定义简单的别名。这里typedef enum{0,1} bool;就是对枚举型类型enum{0,1}定义别名为bool,定义之后,你若想定义一个enum{0,1}类型的枚举变量,则可以简单的bool a;即可。*/bool palindrome( char *s );int main(){ char s[MAXN]; scanf("%s", s); if ( palindrome(s)==true ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s); return 0;}/* 你的代码将被嵌在这里 */bool palindrome( char *s ){ int i,n; n=strlen(s);//字符串长度 if(n%2==1)//如果长度为奇数的话 { for(i=0;i<(n-1)/2;i++)//前一半长度 { if(s[i]==s[n-1-i])//第一个等于最后一个,第二个等于倒数第二个 continue; else return false; } } else//如果长度为偶数的话 { for(i=0;i