阅读 76

回文序列的作用,判断是否是回文

内容:

所谓回文,就是像“abba”和“abdba”那样,只有正读和回读是相同的字符串,但“good”不是回文。 试着写一写判定给定的文字向量是否是回文的算法。

步骤:

算法分析:

回文列无论是正读还是反读都是同一个列,是比较一个列及其逆列,而堆栈正好具有先进的后出、正序输入逆序输出的特点,所以可以利用堆栈解决这个问题。

我们使用数组堆栈,对要判断的字符串进行3358www.Sina.com/的操作,假设为取半入栈,则3358www.Sina.com/为3358www.Sina.com/

再进行出栈

# include stdio.h # include string.h # include stdlib.htypedefstructstack//定义数组堆栈{ int top; char str[100]; }堆栈; int main () { int len,I,mid,next; char str[100]; STACK s; s.top=0; gets(str ); //输入字符串len=strlen(str ); //求出字符串的长度mid=len/2求出字符串的中间位置for(I=0; imid; 堆叠I//字符串的一半{ s.str[s.top]=str[i]; s.top; (if ) Len%2!=0//在字符串长度为奇数情况下,后半部分的字符串从中间位置1开始{ next=mid 1; }else //否则,后半部分的字符串从中间位置开始{ next=mid; }while(s.top!=0(if ) s.str[s.top-1]==str[next] ) /前半部分的最后一个字符等于后半部分的第一个字符,) s.top----; next; } else { break; }if(s.top==0) { printf )是回文(n ) ); (else ) printf ) )不是回文(n ); } return 0; }执行结果:


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐