第九章 模板與群體資料 C9 3 括號匹配

2021-08-28 03:53:26 字數 1780 閱讀 1415

括號匹配 (100/100 分數)

題目描述

棧的應用非常廣泛。請先實現乙個棧模板類(定義已在下面給出),然後利用這個棧類解決下面的問題:

給定乙個字串,長度小於1000,其中只包含左右括號和大小寫英文本母。請編寫程式判斷輸入的字串裡的左右括號是否全部是匹配的,匹配規則即從內到外左括號都與其右邊距離最近的右括號匹配。如匹配,輸出「yes」,否則,輸出「no」。

輸入描述

每個測例輸入乙個字串,長度小於 1000 ,大於 0 。

輸出描述

若輸入字串內的所有括號正確匹配,輸出「yes」,否則輸出「no」。

樣例輸入

((let)(us)(practice)((stack)(template)))

()you(should))(out)put(no)

樣例輸出

yes

no**實現

1.模板類棧

template

class stack

t pop()//將棧頂元素彈出棧

const t & peek() const

//訪問棧頂元素

bool isempty() const

//判斷是否棧空

else

}};template

//這裡不用再寫max=1000,一般預設只寫一次

stack::stack()

注意注釋,預設引數說一遍就行了

(主函式實現

int main()

if (str[i] == ')')

else

if (aa.peek()=='(')}}

if (aa.isempty())

else

}return

0;}

1.考慮多種情況。

(1)若空棧還讀取出),則必定不匹配,直接跳出迴圈(這裡因為多層迴圈所以使用了goto語句)。

(2)若(數量多,則最後棧中會殘餘(

(3)若剛好匹配,最終會是空棧

2.若為情況(2),若不對棧進行清空或對棧類物件進行析構,則殘餘的(會對下一次的結果產生影響,故將stack類構造放到while迴圈內,每一次迴圈結束後會自動析構,避免產生影響。

完整**

#include 

#include

using

namespace

std;

template

class stack

t pop()//將棧頂元素彈出棧

const t & peek() const

//訪問棧頂元素

bool isempty() const

//判斷是否棧空

else

}};template

stack::stack()

int main()

if (str[i] == ')')

else

if (aa.peek()=='(')}}

if (aa.isempty())

else

}return

0;}

第九章 模板與群體資料 C9 1 陣列求和

陣列求和 100 100 分數 題目描述 編寫乙個模板函式getsum,接收乙個陣列,返回該陣列所有元素的和。部分 已給出,請將 填補完整。輸入描述 每個測例共 3 行,第一行為兩個整數 n,m n 1,m 1 第二行為 n 個整數,用空格隔開,第三行為 m 個實數,用空格隔開。輸出描述 對每個測例...

c 基礎 (第九章)

結構體型別說明 struct 結構體識別符號 成員變數列表 如果沒有結構體識別符號,則稱為無名結構體型別 引用結構體變數成員 l 結構體變數名.成員名 l 結構體指標名 成員名 l 結構體指標名 成員名 共用體共用體所有變數共用一塊記憶體 定義格式如下 union 共用體識別符號 成員變數列表 列舉...

第九章 資料安全

資料安全概述 資料庫安全 1 資料庫系統執行安全,包括其所在的主機系統安全 2 資料資訊保安,即資料安全 資料安全 指資料的完整性 可用性 保密性和可靠性 資料安全依賴於資料庫管理系統所採用的安全策略 安全模型和安全機制 資料安全所面臨的威脅 1 授權人員的非故意錯誤行為 2 社交工程 3 內部人員...