利用順序棧判斷字串的對稱性

2021-10-04 05:35:37 字數 1290 閱讀 8078

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...