回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。
内容:
回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。
算法分析
将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较。即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符比较,……,直至栈空,结论为字符序列是回文。在出栈元素与串中字符比较不等时,结论字符序列不是回文。
概要设计
函数 |
void Init(Stack& S, char* t) int Push(Stack& S, char e) int Pop(Stack& S, char& e) int Empty(Stack S) int IsPlalindrome(char* t) |
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
typedef struct
{int stack_size;char* top;char* base;
}Stack;int InitStack(Stack& S, char* t) //初始化栈
{int len = strlen(t);S.base = (char*)malloc(len * sizeof(char));if (S.base == NULL)return 0;S.top = S.base;S.stack_size = len;
}//入栈
int Push(Stack& S, char e)
{if (S.top - S.base == S.stack_size)return 0;*S.top++ = e;return 1;
}//出栈
int Pop(Stack& S, char& e)
{if (S.top == S.base)return 0;e = *--S.top;return 1;
}//判空
int Empty(Stack S)
{return (S.top == S.base);
}int IS_HUIWEN(char* t) //判断t[]是否为回文
{Stack S;char e;int i, len;InitStack(S, t);len = strlen(t); //求数组长度for (i = 0; i < len / 2; i++)//将一半字符入栈Push(S, t[i]);if (strlen(t) % 2 == 1)i++;//将最中间的数字跳过while (!Empty(S))// 每弹出一个字符与相应字符比较{Pop(S, e);if (e != t[i])return 0;// 不等则返回0else i++;}return 1; // 比较完毕均相等
}int main()
{int len = 0;char* a = NULL;printf("你要输入几个字符:");scanf_s("%d", &len);getchar(); //吃掉回车a = (char*)malloc(len * sizeof(char));//给a字符串空间printf("\n请输入待检测的字符串:");scanf_s("%c", &a);if (IS_HUIWEN(a))//判断printf("\n是回文字符串!");elseprintf("\n不是回文字符串!");return 0;
}
回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。相关推荐
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
栈与队列习题:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向 ...
- 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)
文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列:如"abba"和"abdba"均是回文,但"good" ...
- 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
题目要求:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向量是 ...
- 类C语言--栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
此代码可以正常运行,下附有运行界面,是是实实在在的类C语言 将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较.即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符 ...
- 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。
步骤:1.通过InitStack()函数来初始化栈 2.通过Push()函数来压栈 3.通过Pop()函数来弹栈 4.通过StackEmpty()函数来进行栈的判空 5.通过Panduan()函数来进 ...
- 1.回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈。)2.假设以带头结点的循环链
typedef struct StackNode {char date;struct StackNode* next; }*LinkStack,StackNode; //初始化链栈 void Init ...
- P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述)
做这个题时遇到个bug,即main()中的第一句,我定义了指针str_input用来装输入的字符串,但是后面赋值操作却用了get(),如果要用get()读入字符串的话就应该将str_input定义为数 ...
- 回文序列是指正读反读均相同的字符序列,如“abba”和“abdba”均是 回文,但“good”不是回文。试写一个算法判定给定的字符串是否为回文序列。
回文,就是将头尾互换,地址位置不需改变. #include <stdio.h> #include <string.h>const int TRUE = 1; const int ...
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文但“good”不是回文,试写一个算法判断给定字符是否为回文。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include<iostream> ...
最新文章
- python输出大小不同的字体_python – 为什么我的truetype字体大小为11渲染与windows不同?...
- 算法学习:强连通分量 --tarjan
- Codeforces 976F
- scala不使用new关键字创建对象实例
- SAP ABAP OData gateway缓存表的存储逻辑 - cache table logic
- python中for x in range_python教程:对 [lambda x: x*i for i in range(4)] 理解
- java面试题2 牛客:定义类中成员变量时不可能用到的修饰是
- 美国防部DARPA发起地下空间挑战赛提供3百万美元巨奖
- 2016年百度面试题
- 5分绩点转4分_U19男篮世界杯 | 郭昊文空砍23分4篮板5助攻 国青72-86负菲律宾
- JMETER 各组件执行顺序与作用域
- Shiro入门视频课程——笔记(一)
- 第四季-专题8-LINUX系统调用
- Socket编程入门(一)实现简单的Socket实例
- 软考中级软件设计师学习资料分享
- 海量数据处理技巧-转载
- java 判断当前时间节气,请问js获取阴历节气后根据节气判断春夏秋冬四季?该怎么写呢...
- 2022茶艺师(中级)理论题库及答案
- 计算机提示资源管理器停止,电脑开机黑屏并弹出Windows 资源管理器已停止工作该怎么办?...
- 大视野1898--Swamp 沼泽鳄鱼
热门文章
- spirngcloud
- 嵌入式计算机的应用都有哪些,嵌入式系统的应用领域有哪些?
- 参考文献是会议论文应该什么格式?
- 论文的参考文献格式怎么弄呢?
- 异常:com.alibaba.druid.sql.parser.ParserException: ERROR. token : DESC, pos : 72
- windows下修改磁盘扇区数据
- java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents 解决方法
- C2: 宽基窄基 场内场外
- 教你一起来做一下SpringBoot蓝天幼儿园管理系统
- 【链表】 链表的基本概念及分类