内容:
回文是只正读和返读都相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。
步骤:
算法分析:
回文序列是正读和反读都相同的序列,就是比较一个序列和它的逆序列,而栈刚好具有先进后出,正序输入逆序输出的特点,因此我们可以利用栈来解决这个问题。
我们使用一个数组栈,把要进行判断的字符串进行取半入栈的 *** 作,对其再进行出栈,这样输出的前半段序列是逆序的,只需要将其与剩余的未入栈的字符串序列进行比较,如果一一对应,则是回文序列。
代码如下:
#include#include #include typedef struct Stack //定义数组栈 { int top; char str[100]; }STACK; 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;i 运行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)