括號匹配問題 stack的利用

2021-06-22 04:48:22 字數 923 閱讀 9145

/*

* *題目 - 擴號匹配問題

** poj.grids.cn

描述 在某個字串(長度不超過100)中有左括號、右括號和大小寫字母;規定(與常見的算術式子一樣)任何乙個左括號都從內到外與在它右邊且距離最近的右括號匹配。

其中不能匹配的左括號用"$"標註,不能匹配的右括號用"?"標註

關於輸入

第一行乙個正整數n,表示資料的組數。後面n行,每組資料一行,包含乙個字串,只包含左右括號和大小寫字母,字串長度不超過100

關於輸出

對每組輸出資料,輸出兩行,第一行包含原始輸入字元,第二行由"$","?"和空格組成,與第一行等長,"$"和"?"表示與之對應的左括號和右括號不能匹配。

注意:即使所有括號都匹配,第二行也要輸出等長的一行空格

例子輸入

2((abcd(x)

)(rttyy())sss)(

例子輸出

((abcd(x)

$$)(rttyy())sss)(

? ?$

*/#include#include#include#includeusing namespace std;

int main()

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

//有'('相匹配

else

} //其他字元需許考慮,與括號無關

else

}//for

//若棧非空,則有沒有匹配的左括號

while(!s.empty())

mark[i] = '\0';

//輸出

puts(str);

puts(mark);

} return 0;

}

7 6 1 stack 括號匹配

給定僅包含 六種括號的字串,請你判斷該字串中,括號的匹配是否是合法的,也就是對應括號的數量 巢狀順序完全正確。輸入格式 第一行乙個整數t t 10 其後t行每行乙個字串只包含六種字元 字串長度2e5以內 輸出格式 對於每個字串,匹配輸出yes,否則輸出no 輸入樣例 2 輸出樣例 yes no 報段...

stack解決括號問題

問題描述 write a program to implement parse parentheses algorithm 3 9,discussed in the class matching braces rather than parentheses.in your implementatio...

STL 棧stack 例題 括號匹配)

includestackone stack 定義乙個棧,名稱為 one stack,typename是資料型別,可以是int等one stack.push a elem 將a elem放入棧 one stack.pop 出棧stack top value one stack.top top返回棧頂元...