最近在做ACM上的题目,在vs上写了一个括号配对的程序能运行出来,但是放到ACM上就是各种错误,最多的是runtimeerror,下面附上程序,希望高手能指点一下。。
#include
#include
#include
#include
using namespace std;
int main()
{
int N; //测试数据组
cin>>N;
if(N100)
{
cout<<"please input number 0<n<100"<<endl;
return 1;
}
vector<string> vec;
vector<int> mark; //存放结果
string s=" ";
for(int i=0;i<N;i++)
{
cin>>s;
if(s.size()==0||s.size()>10000)
{
cout<<"input error"<<endl;
i--;
continue;
}
vec.push_back(s);
}
stack<char> st;
vector<string>::iterator iter;
int j=0;
for(iter=vec.begin();iter!=vec.end();iter++)
{
st.push((*iter)[0]);
for(int t=1;t!=(*iter).size();t++)
{
if(((*iter)[t]=='(')||((*iter)[t]=='['))
st.push((*iter)[t]);
else if((*iter)[t]==')')
{
if(st.top()=='(')
st.pop();
else if(st.top()!='(')
st.push((*iter)[t]);
}
else if((*iter)[t]==']')
{
if(st.top()=='[')
st.pop();
else if(st.top()!='[')
st.push((*iter)[t]);
}
}
if(st.empty())
mark.push_back(1);
else
mark.push_back(0);
}
for(vector<int>::iterator it=mark.begin();it!=mark.end();it++)
{
if(*it)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return 0;
}