PTA括号匹配
一、题目描述

二、解题思路
这个题打的时候没写出来,脑子抽了,很久没用栈写过题了,所以非常sb。思路非常简单,就是当栈不为空时,匹配输入的元素和栈顶,如果匹配了就弹出栈顶,不然就加入栈顶。最后如果栈区元素不为空,则不匹配。
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 int main() 4 { 5 int t; 6 cin >> t; 7 while(t--){ 8 string s; 9 cin >>s ; 10 stack <char> ans; 11 for(auto &u:s){ 12 if(ans.empty()) 13 ans.push(u); 14 else{ 15 if(ans.top() == '(' && u == ')') 16 ans.pop(); 17 else if(ans.top() == '[' && u == ']') 18 ans.pop(); 19 else if(ans.top() == '{' && u == '}') 20 ans.pop(); 21 else 22 ans.push(u); 23 } 24 } 25 if(ans.size() == 0) 26 cout << "Yes" << endl; 27 else 28 cout << "No" << endl; 29 while(!ans.empty()){ 30 ans.pop(); 31 } 32 } 33 return 0; 34 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}

浙公网安备 33010602011771号