Parentheses Balance |
You are given a string consisting of parentheses () and []. A string of this type is said to becorrect:
Write a program that takes a sequence of strings of this type and check their correctness. Your program can assume that the maximum string length is 128.
3 ([]) (([()]))) ([()[]()])()
Yes No Yes
#include <cstdio> #include <iostream> #include <cstring> #include <stack> using namespace std; const int MAX = 150; stack<char> s; string buff; int n; bool find(char ch) { if(s.empty()) return false; if(ch==‘)‘) { if(s.top()==‘(‘) { s.pop(); return true; } return false; }else if(ch==‘]‘){ if(s.top()==‘[‘) { s.pop(); return true; } return false; } } void solve() { int length = buff.size(); bool ans=true; for(int i=0; i < length; i++) { if(buff[i]==‘(‘ || buff[i]==‘[‘) s.push(buff[i]); else { if(!find(buff[i])){ ans = false; break; } } } if(ans && s.empty()) printf("Yes\n"); else printf("No\n"); } void init() { while(!s.empty()) s.pop(); } void read() { cin>>n; cin.get(); while(n--) { init(); getline(cin, buff); solve(); } } int main() { // freopen("in.txt","r",stdin); read(); return 0; }
UVa 673 - Parentheses Balance,布布扣,bubuko.com
原文:http://blog.csdn.net/china_zoujinyong/article/details/20719605