使用STL的stack容易实现。
한국어< 中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin
#include <iostream> #include <cstring> #include <stack> using namespace std; int main() { stack <char> sta; char str[220]; while( cin >> str ) { int len = strlen(str); char *ch = str; if( str[0] == ')' || str[len - 1] == '(' || (len % 2) == 1) { cout << "NO" << endl; continue; } else { while(*ch != '\0') { if(sta.empty()) { char c = *ch; sta.push(c); } else { if(sta.top() == '(' && *ch == ')') sta.pop(); else { char c = *ch; sta.push(c); } } ch++; } } if(sta.empty()) cout << "YES" << endl; else cout << "NO" << endl; } }