NYOJ-2-括弧マッチング問題(STL-stack)
テーマの説明:
現在の括弧の列を説明します.このかっこがペアになっているかどうか確認してください.入力1行目の入力数N(0出力1組あたりの入力データの出力が1ラインです.この文字列に含まれる括弧がペアである場合は、Yesを出力します.ペアでない場合はNoサンプル入力を出力します.
文字列の各文字を巡回して、'''または'('であれば、スタックに入ります.'''または')'であり、スタックのトップは対応する''''または'('であれば、スタックに入れずにスタックの一番上の要素をイジェクトします.そうでなければ、スタックが空であれば、マッチングに成功します.そうでなければ、Noを出力します.
タイトルコード:
現在の括弧の列を説明します.このかっこがペアになっているかどうか確認してください.入力1行目の入力数N(0出力1組あたりの入力データの出力が1ラインです.この文字列に含まれる括弧がペアである場合は、Yesを出力します.ペアでない場合はNoサンプル入力を出力します.
3
[(])
(])
([[]()])
サンプル出力No
No
Yes
テーマの考え:文字列の各文字を巡回して、'''または'('であれば、スタックに入ります.'''または')'であり、スタックのトップは対応する''''または'('であれば、スタックに入れずにスタックの一番上の要素をイジェクトします.そうでなければ、スタックが空であれば、マッチングに成功します.そうでなければ、Noを出力します.
タイトルコード:
#include
#include
#include
using namespace std;
int n;
string s;
int main(){
cin>>n;
while(n--){
stack st;
cin>>s;
for(int i = 0; i < s.length(); i++){
if(!st.empty() && ((s[i] == ']' && st.top() == '[') || (s[i] == ')' && st.top() == '('))){
st.pop();
}else{
st.push(s[i]);
}
}
if(st.empty())
cout<