[容易] UVa OJ 673 经典括号匹配问题

xiaoxiao2021-02-28  98

题目描述

思路:

本题就是一个简单的括号匹配问题,使用栈便可轻松解决。

具体代码:

#include <iostream> #include <string> #include <stack> using namespace std; bool isValid(string& s) { stack<char> sc; for(int i=0;i<s.size();++i) { switch(s[i]) { case '(': case '[': sc.push(s[i]); break; case ']': if(sc.empty()||sc.top()!='[') return false; else sc.pop(); break; case ')': if(sc.empty()||sc.top()!='(') return false; else sc.pop(); break; } } if(sc.empty()) return true; else return false; } int main() { // freopen("input.txt","r",stdin); int n; cin>>n; getchar(); string s; for(int i=0;i<n;++i) { getline(cin,s); if(s.empty()||isValid(s)) { cout<<"Yes"<<endl; } else cout<<"No"<<endl; } return 0; }

转载请注明原文地址: https://www.6miu.com/read-71766.html

最新回复(0)