任務描述
本關任務:基於棧stack
資料結構判斷字串中的括號是否匹配,字串中僅包含如下字元:(
)
[
]
。
相關知識
為了完成本關任務,你需要掌握:1.如何建立乙個棧,2.入棧、出棧操作。 演算法思想: 輸入符號串str; 初始化棧s for(i=0; str[i]!=′\0′; i++) /掃瞄括號串/
}}若棧不空,則匹配不成功,否則匹配成功
程式設計要求
本關的程式設計任務是補全右側**,實現對輸入的括號串進行匹配判斷, 若匹配成功輸出yes
,否則輸出no
。
輸入輸出說明
輸入為單個測試資料,輸入長度不超過100的由(
)
[
]
等符號組成的字串,判斷該字串中各種括號是否匹配,若匹配成功輸出
yes
,否則輸出no
。
以下是平台的測試樣例:
樣例一:
測試輸入:預期輸出:
yes
樣例二:
測試輸入:[(])
預期輸出:no
//括號匹配
#include #include
#include
using
namespace
std;
int match(char
str);
intmain()
int match(char
str)
else
if(mystack.empty())
else
if(c==')'
)else
}else
if(c==']'
)else
}else
if(c=='}'
)else}}
if(mystack.empty())return1;
return0;
/********** end *********
*/}
利用棧判斷括號是否匹配
輸入格式如下 3 輸出格式如下 yes no yes 演算法描述 利用棧來判斷 注意出棧時,考慮棧是否為空 最後匹配的結果應該是棧為空 1 從左到右進行掃瞄字元 2 若為左括號 else public boolean isbalanced string str elseelseelse end fo...
利用棧的特性判斷括號是否匹配
括號匹配的檢驗 假設輸入字串中有三種括號,大括號 中括號 小括號,其巢狀的方式是隨意的。即類似的都為正確格式。檢驗括號是否匹配的方法可用 期待的急迫程度 來解決。例如下面的括號串 當計算機接受第乙個括號時,它期待著第六個括號與它見面,然而我們輸入的卻是第二個括號,同理,一直到第三個括號,3期待著4與...
php判斷字串中前後括號是否匹配
思路 將字串內的括號分為前括號和後括號,匹配到前括號則直接儲存到陣列中,匹配到後括號,則跟之前儲存的前括號中最後乙個括號進行對比,如果匹配,則刪除前括號中的最後乙個匹配的括號,如果不匹配,則報錯。header content type text html charset utf 8 str 434 ...