回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
```#include<stdio.h> //用了c++里的&和cin.getline(),所以得用.cpp 等运行成功之后看下换成指针试下
#include<string.h> //strlen
#include<stdlib.h> //malloc
#include<iostream>
using namespace std;
typedef struct //重定义struct为Stack
{int stack_size;int top;char* ch;
}Stack;
int InitStack( Stack&s,char* t) //初始化顺序栈的大小
{int length = strlen(t); s.ch = (char*)malloc(length * sizeof(char)); //初始化了顺序栈的大小 s.stack_size = length;if (s.ch != NULL){s.top = 0; //将顺序栈置空,等会top++从数组t【0】开始}return 0;
}
int Push(Stack& s, char e) //入栈
{if (s.top == s.stack_size)// 判断栈是否上溢return 1;s.ch[s.top] = e; s.top++; return 0;
}
char Pop(Stack& s) //出栈
{char temp;if (s.top == 0) //判断栈是否下溢return 1;else{s.top--; // 因为上面入栈最后有个top++,会使指针再向上指一个值为空temp = s.ch[s.top]; return temp;}
}
int IsPlalindrome(char* t) //判断是否为回文
{Stack s;int len, i = 0;InitStack(s, t); //先初始化栈len = strlen(t); //求出字符串的长度for ( i = 0; i < len / 2; i++)Push(s, t[i]); //在主函数中已经把它初始化了if (len % 2 == 1)i++;while (s.top >0) // 一开始我这里是>=0,就会造成多循环一次,直接返回0{if (Pop(s) != t[i]){return 0; //等会再函数(0)就为假}i++;}return 1;
}int main()
{int len=0;char* str;printf("你要输入几个字符:");scanf_s("%d", &len); //读取到换行符时截至,把\n留在了缓冲区。getchar(); //吃掉回车str = (char*)malloc(len * sizeof(char));printf("请输入字符串:");gets_s(str,len+1); // 不管是gets还是getline都给我报了内存缓冲区的错误//cin.getline(str,(len+1)); //遇到换行\n停止读入 输入4 assa str只有ass +1把空格读进来再抛弃if (IsPlalindrome(str))printf("是回文串");elseprintf("不是回文串");free(str);return 0;
}
回文是指正读反读均相同的字符序列,如“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> ...
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。
内容: 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.编写一个程序,使用栈判定给定的字符 ...
最新文章
- 服务器性能估算参考(硬件-分析数据库)
- linux怎么卸载源码包安装mysql_Linux下卸载和安装MySQL[rpm包]
- 亚马逊 CTO 回应人脸识别技术质疑:技术无罪,我们无责任
- PHP比较时间段一与时间段二是否有交集
- python编程经典案例-一个非常适合Python新手的编程案例——投票小程序
- 开源的13个Spring Boot 优秀学习项目!超53K星,一网打尽!
- Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
- Windows下使用python库 curses遇到错误消息的解决方案
- 计网 --- 域名服务系统:因特网的目录服务
- Mybatis(6)CURD增删改查操作
- ES5中的有9个Array方法
- 【POJ1584】A Round Peg in a Ground Hole,第一次的计算几何
- 基于深度学习的信道估计(DL-CE)基础知识
- [leetcode] Reverse Integer 反转一个整数
- ssh连接失败,排错经验
- 恒强系统服务器,恒强系统色码解析大全
- 浅谈Android测试技术
- 注册登录后才可以下载的源码_专注爬虫:20个精心总结爬虫项目,爬虫技术这里强(附源码)...
- zotero抓取知网文献
- 融入动画技术的交互应用——解压小游戏“蒲公英与星”
热门文章
- 弗洛伊德,迪杰斯特拉算法
- Linux 自检和 SystemTap
- 基因组注释1. 重复序列repeatmasker, trf
- 移植mysql到安卓手机_记录dbnet文本检测转ncnn并移植到安卓上
- ps软件怎么测试性能,实际性能测试:Photoshop处理
- cygwin完全安装步骤方法(组图)
- python怎么将删的代码恢复_找回丢失的Python代码--如果代码还驻留在内存中
- Linux 安装VMware Tools(open-vm-tools)实现桌面全屏、跨平台复制等功能
- PHP代码审计8—SSRF 漏洞
- 浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现