P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述)
做这个题时遇到个bug,即main()中的第一句,我定义了指针str_input用来装输入的字符串,但是后面赋值操作却用了get(),如果要用get()读入字符串的话就应该将str_input定义为数组,编译时没有报错,但运行时出错。我调试的时候一直以为bug在IsPlalindrome()里面,耽误了很久的时间。基础知识不够牢固啊!
#include <stdio.h>
#include <string.h>const int TRUE = 1;
const int FALSE = 0;
const int STR_MAX_SIZE = 100;
typedef int STATUS;
typedef char ElementType;
typedef struct
{int stack_size;ElementType *top;ElementType *base;
}STACK;STATUS IsPlalindrome(char* s);
int main()
{
// char *str_input; //之前这么定义的,导致程序在gets(str_input)处出错,后改成下一句 char str_input[STR_MAX_SIZE];printf("\n请输入待检测的字符串:");gets(str_input);if(IsPlalindrome(str_input)){printf("\n是回文字符串!");}else{printf("\n不是回文字符串!");}return 0;
}STATUS IsPlalindrome(char* s)
{int len;char *p;STACK stack;len = strlen(s) / 2; p = s;stack.base = new char [len];stack.top = stack.base;stack.stack_size = len;for(int i = 0; i < stack.stack_size; i++){*(stack.top) = *p;stack.top++;p++;}if(stack.stack_size % 2 == 1)//当字符串为奇数个时,最中间的字符无需比较,直接跳过 {p++;}while(stack.top != stack.base){if(*(stack.top - 1) != *p){delete [] stack.base;return FALSE; }else{stack.top--;p++;}}if(stack.top == stack.base){delete [] stack.base;return TRUE;}
}
P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述)相关推荐
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
栈与队列习题:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向 ...
- 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)
文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列:如"abba"和"abdba"均是回文,但"good" ...
- 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
题目要求:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向量是 ...
- 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。
步骤:1.通过InitStack()函数来初始化栈 2.通过Push()函数来压栈 3.通过Pop()函数来弹栈 4.通过StackEmpty()函数来进行栈的判空 5.通过Panduan()函数来进 ...
- 类C语言--栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
此代码可以正常运行,下附有运行界面,是是实实在在的类C语言 将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较.即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符 ...
- 1.回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈。)2.假设以带头结点的循环链
typedef struct StackNode {char date;struct StackNode* next; }*LinkStack,StackNode; //初始化链栈 void Init ...
- 回文序列是指正读反读均相同的字符序列,如“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> ...
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。
内容: 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.编写一个程序,使用栈判定给定的字符 ...
最新文章
- Python学习心得第一周-03练习2
- 洛谷——P1059 明明的随机数
- 如何设计数据库表实现完整的RBAC(基于角色权限控制)
- C++实现贪吃蛇(多线程,窗口设置,链表,音乐播放)
- 设计素材模板|艺术感中国风海报
- SVN—怎么删除 SVN 上已有的URl
- xvid开放源码xvidcore-1.1.3.zip在VC下成功编译的方法
- ext2文件系统源代码之inode.c
- DBC文件解析及CAN通信矩阵
- html中pc端与移动端区别,pc端是什么意思?pc端和移动端有什么区别
- 请领导批阅文件怎么说_汇报措辞:你懂得怎样向领导汇报吗(审阅、审批、批阅、批示、查阅)?...
- 知来者之可追_#AboutLastWeek:老朋友,新来者以及介于两者之间的人
- sql中如何按拼音笔画排序
- 大地测量常用的四种坐标系
- 2019的百度网盘下载速度太慢老是限速怎么解决?
- Sharepoint visio Web Access
- 复习中国近现代史纲要--“政治编年史”
- 【Linux正则表达式之grepegrep】
- matlab bar 填充花纹,转:使用matlab绘画柱状图,且使用不同的图案填充
- 路由器如何恢复出厂设置
热门文章
- 队列练习之Example005-Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法
- Microsoft.Office.Interop.Word 创建word
- 金融硕士自学python_国际金融硕士跨专业学Python从老男孩教育开始
- RGB-D论文复习速读
- 网上如何赚钱?教你利用知识变现来赚钱!
- 【接口篇 / Wan】(5.2) ❀ 04. 多条宽带冗余 ❀ FortiGate 防火墙
- 计算机网络技术的发展趋势,计算机网络技术发展趋势(原稿)
- MATLAB 中contour的应用
- mysql错误+126_MySQL,错误126:表的密钥文件不正确
- POWER BI里如何累计求和(一)