回文數、括號匹配(棧操作)

回文數

“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.pswp.cn/news/378993.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378993.shtml
英文地址,請注明出處:http://en.pswp.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…