1. 程式人生 > >Uva-673 Parentheses Balance

Uva-673 Parentheses Balance

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int T;
 7     cin >> T;
 8     getchar();
 9     while(T --)
10     {
11         string input;
12         getline(cin,input);
13         stack<char> s;
14         while(!s.empty()) s.pop();
15 int flag = 0; 16 for(auto c:input) 17 { 18 if(c=='('||c=='[') 19 s.push(c); 20 else if(c==')') 21 { 22 if(!s.empty()&&s.top()=='(') 23 s.pop(); 24 else 25
{ 26 flag = 1; 27 break; 28 } 29 } 30 else if(c==']') 31 { 32 if(!s.empty()&&s.top()=='[') 33 s.pop(); 34 else 35 {
36 flag = 1; 37 break; 38 } 39 } 40 } 41 if(!flag&&s.empty()) 42 cout << "Yes" << endl; 43 else 44 cout << "No" << endl; 45 } 46 return 0; 47 }

注意第一個條件,空串也是Yes