指定された括弧以外は無視していく。
/************************************************
* 2012/06/30 *
* AOJ_Volume11_1173_ *
* The_Balance_of_the_World *
* crane *
*************************************************/
#include<iostream>
#include<string>
#include<stack>
using namespace std;
string input;
int main(){
while(getline(cin, input)){
stack<char> str;
if(input.at(0) == '.') break;
bool frag = true;
int i=0;
while(1){
if(!frag) break;
char c = input.at(i);
i++;
if(c == '.') break;
switch(c){
case '(':
case '[':
str.push(c);
break;
case ')':
case ']':
if(!str.empty()){
char c2 = str.top();
str.pop();
if(c2 == '(' && c == ']')
frag = false;
else if(c2 == '[' && c == ')')
frag = false;
}else{
frag = false;
}
break;
}
}
if(frag&& str.empty()) cout << "yes" << endl;
else cout << "no" << endl;
}
return 0;
}
0 件のコメント:
コメントを投稿