給定一串字符,不超過100個字符,可能包括括號、數字、字母、標點符號、空格,編程檢查這一串字符中的( ) ,[ ],{ }是否匹配。
輸入格式:
輸入在一行中給出一行字符串,不超過100個字符,可能包括括號、數字、字母、標點符號、空格。
輸出格式:
如果括號配對,輸出yes,否則輸出no。
輸入樣例1:
sin(10+20)
輸出樣例1:
yes
輸入樣例2:
{[}]
輸出樣例2:
no
1 #include<iostream> 2 #include<stack> 3 #include<string> 4 using namespace std; 5 6 bool judge(string s) 7 { 8 stack<char>stk; 9 for (int i = 0; i < s.length(); i++) 10 { 11 switch (s[i]) 12 { 13 case '(':stk.push(s[i]); 14 break; 15 case '[':stk.push(s[i]); 16 break; 17 case '{':stk.push(s[i]); 18 break; 19 case ')': 20 if (stk.empty()) 21 return false; 22 if (stk.top() == '(') 23 stk.pop(); 24 else 25 return false; 26 break; 27 case ']': 28 if (stk.empty()) 29 return false; 30 if (stk.top() == '[') 31 stk.pop(); 32 else 33 return false; 34 break; 35 case '}': 36 if (stk.empty()) 37 return false; 38 if (stk.top() == '{') 39 stk.pop(); 40 else 41 return false; 42 break; 43 } 44 } 45 return stk.empty(); 46 } 47 int main() 48 { 49 string s; 50 getline(cin,s); 51 if (judge(s)) 52 cout << "yes"; 53 else 54 cout << "no"; 55 }