赵智任的博客

萌新,不定时分享一下自己的学习经历

判断是不是回文字符串

/*判断是不是回文串

思路:要是它是回文串,那么他的前半部分倒序输出和后半部分一定是一样的,

要是不一样就不是回文串。

例:12321 21(前半段倒序输出)==21

123321 321==321

*/

#include<stdio.h>

#include<string.h>

int main(void)

{

char a[101],s[101];

int i,top=0,len,mid,next;

printf("输入你要判断的:\n");

gets(a);

len=strlen(a); //测量长度

mid=len/2;//取出中间位置

if(len%2)

next=mid+1;//要是奇数起始位就是中间的下一位;

else

next=mid;//偶数就是中间

for(i=0;i<mid;i++)

s[top++]=a[i];//把前半段存起来

for(top=top-1,i=next;top>0;top--)//架设循环开始比较

{

if(a[i]-s[top])//不一样就跳出循环

break;

else //一样就继续判断下一位

i++;

}

//出了循环之后,判断top,是回文串,top就是正常

//出循环的,top==0;不是回文串,top一定不是零;

if(top-0)

printf("NO\n");

else

printf("yes\n");

return 0;

}

这个简单直接附上程序,看一看注释就可以了。

我是小纸人,谢谢大家。​

阅读更多
上一篇创建及输出链表
下一篇快速排序之荷兰国旗问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭