做企业网站大约多少钱,做网站怎么配电脑,游戏交易网站开发,WordPress表单系统作者 唐艳琴
单位 中国人民解放军陆军工程大学
本题要求实现一个函数#xff0c;判断字符串是否是回文。如果是则返回1#xff0c;否则返回0。
函数接口定义#xff1a;
int isecho(char a[]);返回值为1#xff0c;表示是回文#xff1b;返回值为0#xff0c;表示不是…作者 唐艳琴
单位 中国人民解放军陆军工程大学
本题要求实现一个函数判断字符串是否是回文。如果是则返回1否则返回0。
函数接口定义
int isecho(char a[]);返回值为1表示是回文返回值为0表示不是回文。
裁判测试程序样例
#include stdio.h
#define N 100int isecho(char a[]);int main()
{char a[N];int k;scanf(%s,a);kisecho(a);if(k)printf(%s yes,a);elseprintf(%s no,a);return 0;
}/* 请在这里填写答案 */ 测试2数据提示
输入数据
1234567654321
输出数据
1234567654321 yes
输入样例
1234321输出样例
在这里给出相应的输出。例如
1234321 yes代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
解题思路
首先我们需要理解什么是回文。回文是指一个诗句、短语、单词、数字或其他字符序列其从前往后和从后往前是完全相同的。例如“level”和“12321”都是回文。
其次为了判断一个字符串是否是回文我们可以使用双指针法。一个指针从头开始遍历字符串另一个指针从字符串的末尾开始遍历。然后我们比较这两个指针所指向的字符是否相等如果相等则同时向中间移动两个指针如果不相等则说明字符串不是回文直接返回0。
最后在遍历过程中如果两个指针相遇或交叉说明我们已经比较了整个字符串这时可以返回1表示字符串是回文。
C程序如下
int isecho(char a[])
{char *p a;//指针p指向a数组中的第一个元素char *q a;//指针q指向a数组中的第一个元素while(*p !\0)//遍历字符串让p指向a数组中的结束符{p;}char *r p - 1;//此时p-1就是指向a数组中的最后一个元素//并让r指向a数组中的最后一个元素while(r q)//右边元素地址小于左边元素地址时推出循环{if(*r ! *q)//若不相等则不是回文退出循环返回0{return 0;}r--;q;}return 1;//若循环结束则说明回文返回1
}