symmetry函式思路:
1.傳入引數:字串(實則為字串的首位址,這是陣列做引數的特性)
2. 字串str的字元從頭到尾全部先入棧,以str[i]=『\0』判定入棧結束
3. 棧內字元出棧,for迴圈每齣棧乙個就與str比較,若有字元不相同,直接return0;否則直到str[i]=』\0』,跳出迴圈return1
關於字串長度的奇偶性:
我採用的是將字串正向與反向對比的方法,如果正反完全相同,那當然具有對稱性。所以不存在奇偶性的問題。
**:
#include
using
namespace std;
const
int maxsize=
100;
//順序棧的型別定義
typedef
char datatype;
typedef
struct
seqstack;
//函式原型的宣告
void
initstack
(seqstack*
& s)
;//棧的初始化函式
intempty
(seqstack* s)
;//判斷空棧函式
intsymmetry
(datatype str)
;//判斷對稱性函式
intpush
(seqstack* s,datatype e)
;//入棧函式
intpop
(seqstack* s,datatype& e)
;//出棧函式
//主函式
intmain()
//函式的定義
void
initstack
(seqstack*
& s)
intpush
(seqstack* s,datatype e)
else
}int
pop(seqstack* s,datatype& e)
else
}int
empty
(seqstack* s)
intsymmetry
(datatype str)
//若對稱,返回1,否則返回0
return1;
}
結果:
利用棧判斷字串括號是否匹配
任務描述 本關任務 基於棧stack資料結構判斷字串中的括號是否匹配,字串中僅包含如下字元 相關知識 為了完成本關任務,你需要掌握 1.如何建立乙個棧,2.入棧 出棧操作。演算法思想 輸入符號串str 初始化棧s for i 0 str i 0 i 掃瞄括號串 若棧不空,則匹配不成功,否則匹配成功 ...
棧判斷字串回文
手寫棧 include includeusing namespace std 搞乙個棧結構體 struct stack int main 因為當字串為偶數時,mid 1就是後半段字串,但是為奇數時,mid 2才是後半段字串 if len 2 1 開始迴圈依次出棧跟後續字串比較即可 while s.t...
判斷字串陣列中的數字是否對稱
分析以下需求,並用 實現 1 定義數字字串陣列 2 判斷該數字字串陣列中的數字字串是否是對稱 第乙個數字和最後乙個數字相等,第二個數字和倒數第二個數字是相等的,依次類推 的,並逐個輸出 3 如 010 是對稱的,3223 是對稱的,123123 不是對稱的 4 最終列印該陣列中對稱字串的個數 pub...