棧是一種後進先出的資料結構,它只能在一端進行插入和刪除操作,通常把它叫做top,類似於我們吃薯片的過程,你是不是先從最頂端開始吃的呢?判斷回文就是棧的乙個典型用法。
所謂回文,就是左右對稱的結構,那麼我們只需要將其一半輸入棧中,再輸出判斷是否與字元另一半相等,就可以判斷是否是回文字元了,是不是十分簡單呢。
#include
#include
using
namespace std;
intmain()
if(len%2==
0)//判斷字元數字的奇偶
next=mid+1;
else
next=mid+2;
for(
int i=next;i(top==0)
//匹配完成
cout<<
"it's a palindrome."
cout<<
"it's not a palindrome."
<}
基於棧的回文字元序列判斷
include define maxsize 10000 includeusing namespace std typedef struct sqstack int initstack sqstack s int push sqstack s,char e if s.top s.base s.sta...
基於棧的回文字元序列判斷
描述 回文序列是正反讀均相同的字串行,如 abba 和 abdba 均是回文,但是 good 不是回文。請設計乙個演算法判定給定的字串行是否為回文。輸入多組資料,每組資料有一行。每一行為乙個長度不定的字串行a。當a為 0 時,輸入結束。輸出對於每組資料輸出一行。若字串行a是回文序列,則輸出 yes ...
順序棧ADT模板簡單應用演算法設計 回文判斷
問題描述 應用 正讀與反讀都相同的字串行稱為 回文 序列。請使用順序棧,設計並實現乙個演算法,判斷依次讀入的乙個以 為結束符的字串行是否為形如 序列1 序列2 模式的字串行。其中序列1和序列2中都不含有字元 且序列2是序列1的逆序列。例如,a b b a 是屬於該模式的字串行,而 1 3 3 1 則...