題目連結: https://zerojudge.tw/ShowProblem?problemid=b838

# 解題思路

讀入一個 ( 就加入堆疊,讀入一個 ) 就刪除一個堆疊中的 (
若運算中,堆疊元素量不足為不合法;運算結束後,若堆疊能有元素亦為不合法。

# 程式碼

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        cin.ignore();
        for(int i=0;i<n;i++){
            stack <char> st;
            string s;
            bool a=true;
            int ans=0;
            getline(cin,s);
            for(int j=0;j<s.size();j++){
                if(s[j]=='(') st.push('(');
                else if(s[j]==')') {
                    if(!st.empty())st.pop(), ans++;
                    else  {cout<<"0\n" ; a=false; break;}
                }
            }
            if(!st.empty()) {cout<<"0\n"; a=false;}
            if(a) cout<<ans<<endl;
        }
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay