2 u010376930 u010376930 于 2014.07.01 11:06 提问

c++编写的ACM中的括号配对问题

最近在做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;

}

Csdn user default icon
上传中...
上传图片
插入图片