回文数、括号匹配(栈操作)

回文数

“xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。输入一行字符(仅包含小写英文字母a~z)请判断这行字符串是否为回文。

输入格式:
只有一行,仅包含小写英文字母a~z的字符串,长度小于等于100。
输出格式:
只有一行,如果是回文请输出YES,不是回文则输出NO,请注意大小写。

样例 1 :
输入:
ahah
输出:
NO

样例 2 :
输入:
ahaha
输出:
YES

代码如下:

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;struct stack//首先定义一个栈
{int data[101];//数据域int top;//栈顶
};int main()
{char a[101];struct stack sq;int i,len,mid,next;gets(a);len=strlen(a);mid=len/2-1;sq.top=0;//初始化栈,栈顶为0for(i=0;i<=mid;i++){//因为是回文数,只需要入栈输入的字符串的一半即可sq.data[++sq.top]=a[i];//入栈}if(len%2==0)//偶数next=mid+1;//左一半入栈,然后与右一半比较else//奇数next=mid+2;//中间那个数不需要入栈,也不需要比较,需要+2,跳过中间那个数for(i=next;i<=len-1;i++){//后一半与栈内前一半元素进行比较if(a[i]!=sq.data[sq.top]){//开始于栈内数据对比,若与栈顶不同,结束即可break;}sq.top--;//若相同,元素出栈,top--指向下一个栈顶元素}if(sq.top==0)//最后的结果若栈内所有元素都出栈表示是回文数printf("YES");elseprintf("NO");return 0;
}
括号匹配

在编程当中我们只会用到三种括号:圆括号(),方括号[]和花括号{},编译器在编译的时候会检查括号是否正确匹配。例如{[()]}、{()[]{}}都是合法的匹配。但是([)]则是不合法的匹配。请编写一个程序来判断输入的括号序列是否合法。

输入格式:
只有一行,为( ) [ ] { }组成的序列,长度不超过100

输出格式:
只有一行,如果是合法匹配则输出YES,不合法则输出NO,请注意大小写

样例 1 :
输入:
{([()]{})}

输出:
YES

代码如下:

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;struct stack//定义栈
{int data[101];//数据域int top;//栈顶
};int main()
{char a[101];int i,len,mid,next;struct stack sq;gets(a);len=strlen(a);sq.top=0;if(len%2 != 0){//奇数个,肯定不匹配,直接结束即可printf("NO");return 0;}if(a[0]=='(' || a[0]=='[' || a[0]=='{'){//第一个字符必须是三个左括号之一for(i=0;i<=len-1;i++){if(a[i]=='{' || a[i]=='[' || a[i]=='('){//若为左半括号进行入栈操作sq.data[++sq.top]=a[i];}if(a[i]=='}' || a[i]==']' || a[i]==')'){//若为右半括号开始出栈进行比较if((sq.data[sq.top]=='(' && a[i]==')') || (sq.data[sq.top]=='[' && a[i]==']') || (sq.data[sq.top]=='{' && a[i]=='}') )//左右括号得配对sq.top--;//配对,出栈else//否则不匹配结束break;}}}else{//第一个字符不是三个左括号之一,匹配肯定不成功printf("NO");return 0;}if(sq.top==0)//若栈内元素都出栈,表示匹配成功printf("YES");elseprintf("NO");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ijkplayer 消息循环处理过程分析

ijkplayer 消息循环处理过程分析简介一、消息队列初始化1、 initWithContentURLString函数2、 ijkmp_ios_create函数3、 ijkmp_create函数二、消息队列的消息循环处理函数启动1、prepareToPlay函数2、ijkmp_prepare_async函数3、ijkmp_prepare_async_l函数4、ijkmp_msg_loop函数…

json解析对应的value为null_徒手撸一个JSON解析器

Java大联盟致力于最高效的Java学习关注作者 | 田小波cnblogs.com/nullllun/p/8358146.html1、背景JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。相对于另一种数据交换格式 XML&#xff0c;JSON 有着诸多优点。比如易读性更好&#xff0c;占用空间更少等。在 …

[一]设计模式初探

模式&#xff0c;顾名思义&#xff0c;就是做一种事情的方法归纳&#xff0c;就经验来说&#xff0c;做什么事情有个好的方法来应对都是可以事半功倍的&#xff0c;在软件开发中何谓好的模式? 我认为好的模式简单来说就是保证你应对需求变化的时候不用做更多的代码修改&#x…

Gentoo - ssh-agent配置

现在使用类似github这样的service&#xff0c;一般来说都会配置ssh key认证。所以使用ssh-agent来管理私钥就变的必要。在Gentoo下是这么配置的&#xff1a;- sudo emerge -avt keychain- 编辑.bashrc&#xff0c;加入keychain <private key 1 path> ... <private key…

java 方法 示例_Java ArrayDeque offerFirst()方法与示例

java 方法 示例ArrayDeque类offerFirst()方法 (ArrayDeque Class offerFirst() method) offerFirst() Method is available in java.lang package. offerFirst()方法在java.lang包中可用。 offerFirst() Method is used to add the given element at the front of this deque. …

平院Python习题

在读写文件之前&#xff0c;用于创建文件对象的函数是&#xff08; A &#xff09;。 A&#xff0e; open B&#xff0e; create C&#xff0e; file D&#xff0e;folder 解析&#xff1a; open(file, mode‘r’, buffering-1, encodingNone, errorsNone, newlineNone, close…

搭建srs服务器(rtmp)

搭建srs服务器&#xff08;rtmp&#xff09; 目录:1、下载srs源码&#xff08;从码云上&#xff09;&#xff1a;2、 切换到srs.oschina&#xff1a;3、 这里使用3.0版本&#xff1a;4、 切换到trunk&#xff1a;5、 编译&#xff1a;6、 启动&#xff1a;7、查看日志输出&…

MOSS信息管理策略定制(MOSS custom policies)

MOSS引入了信息管理策略&#xff0c;通过给文档库或列表附加一些策略可以实现一些自动化的功能&#xff0c;如自动给文档打标签&#xff0c;强制文档的审核&#xff0c;启用文档的过期&#xff0c;甚至可以在用户打印文档时插入条形码。难么&#xff0c;这么好用的功能是怎么实…

2560介绍_炒股高手收益翻10倍,只因妙用这一招2560战法,看了都不亏了

(本文由公众号越声研究(yslc927yj)整理&#xff0c;仅供参考&#xff0c;不构成操作建议。如自行操作&#xff0c;注意仓位控制和风险自负。)选股是每个刚入市的新股民需掌握的技巧&#xff0c;通过资金选股了解资金流向&#xff0c;善用工具轻松选股&#xff0c;同时多留意行业…

二进制搜索树_将排序的数组转换为二进制搜索树

二进制搜索树Problem statement: 问题陈述&#xff1a; Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 给定一个数组&#xff0c;其中元素按升序排序&#xff0c;请将其转换为高度平衡的BST。 For this problem, a he…

rtmp协议分析(三次握手)

RTMP详细分析(Message 消息&#xff0c;Chunk分块) librtmp分析&#xff08;发送数据包处理&#xff09; librtmp分析&#xff08;接收数据包处理&#xff09; RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写&#xff0c;它是由Adobe公司提出的一种应 用层的协…

OpenAPI系列: 六、OpenAPI策略分析

一、如何注册 为什么要注册&#xff1f;访问 OpenAPI必须拥有Consumer Key和Consumer Secret。 如何注册&#xff1f;要获取Consumer Key及Consumer Secret&#xff0c;需要消费方&#xff08;Consumer&#xff09;向服务提供方申请注册&#xff0c;服务提供方审核通过后会向消…

压缩、解压 解决 客户端查询大批量数据时等待时间过长的问题

在项目中查询时&#xff0c;因数据量大&#xff0c;导致网络传输很慢&#xff0c;这就需要在服务器端查询出的数据进行压缩处理&#xff0c;后传输完了在客户端进行解压处理&#xff08;此为在Silverlight中压缩与解压&#xff09;&#xff1b; 具体方法如下&#xff1a; using…

C---已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。

已知正整数n是两个不同的质数的乘积&#xff0c;试求出较大的那个质数。 思路&#xff1a;由题意可知&#xff0c;n为两个质数之积&#xff0c;也就是说只要找到一个数能够被n整除&#xff0c;这个数一定是质数&#xff01;&#xff01;&#xff01;2为最小的质数&#xff0c;…

isnumeric_Python字符串| isnumeric()方法与示例

isnumericisnumeric() is an in-built method in Python, which is used to check whether a string contains only numeric values or not. isnumeric()是Python中的内置方法&#xff0c;用于检查字符串是否仅包含数字值。 Numeric contain all decimal characters and the f…

合并文件夹中子目录_01 Linux之统计文件夹中文件个数以及目录个数

案例分析&#xff1a;今天遇到了一个需要统计路径下目录个数的问题如果一个一个的去数会很麻烦&#xff0c;找到了一篇文章刚好提到这个&#xff0c;于是我将方法整理了一下。该方法的链接&#xff1a;Linux统计文件夹中文件个数以及目录个数_SG匚hang的博客-CSDN博客_linux统计…

关于Makefile,Makefile.in,Makefile.am,Configure功能及相互关系的问题

目录makefile写法1. 简介2. 上路之前3. 一个简单的例子4.说明&#xff1a;4.1、autoscan4.2、 configure.scan4.3、aclocal4.4、autoconf4.5、Makefile.am4.6、 automake4.7、Makefilemakefile写法 在 Unix 上写程式的人大概都碰过 Makefile&#xff0c;尤其是用 C 来开发程式…

修改主键的SQL

declare defname varchar(100)declare cmd varchar(500)declare tablename varchar(100)declare keyname varchar(100) Set tablenameTemp1Set keynameid --需要設置的key,分隔 select defname name FROM sysobjects so JOIN sysconstraints sc ON so.id sc.constid …

西安理工大学863(转载)

原创&#xff1a;https://blog.csdn.net/mzj15101229871/article/details/107613162 &#xff08;博主总结的很完整&#xff0c;很厉害&#xff0c;本人为了查看方便&#xff0c;才转载的。本人只是个小白~&#xff09; 第一章 绪论 考试大纲 1&#xff09;了解数据元素、数…

原理简介_消息通信的利器MQTT协议简介及协议原理

- 没用过但是必须得知道系列 -前言&#xff1a;相比于 XMPP&#xff0c; MQTT 的简单轻量受到了不少工程师的喜爱&#xff0c;从物联网到传统的消息服务&#xff0c;简单可依赖的 MQTT 到底为何让人如此着迷呢&#xff1f;MQTT 协议&#xff0d;MQTT 协议简介及协议原理MQTT(Me…