全国大学生算法设计与编程挑战赛——low
Description
Uncle-lu有一个括号序列(一个全是左括号与右括号的序列),我们都知道左括号和右括号作为一对括号称为一对匹配,但是右括号和左括号作为一对括号就不能称作一对匹配。比如说")(“,”(()“,”)()“等这类序列中存在不能组成的匹配的括号,称该序列为非法序列。但是如”(())“,”(()())"等这类所有括号都能找到与之匹配的序列,就称该序列为合法序列。Uncle-lu想让你帮帮他看一下他现在的这个序列是否为合法序列。
Input
第一行为一行长度为n的括号序列
Output
如果是合法序列输出"Yes"(不包含双引号),如果不是合法序列输出"No"(不包含双引号)
完整代码:
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
char n;
int flag=0;
cin>>n;
vector<char> c;
while(n!='\n'){
c.push_back(n);
cin.get(n);
}
for(int i=0;i<c.size();i++){
if(c[i]=='('){
flag =flag+1;
}
if(c[i]==')'){
flag =flag-1;
}
}
if(flag==0){
cout<<"Yes";
}
else
cout<<"No";
return 0;
}