PTA上运行结果与预期结果一致 但是提交答案错误

#include#include<string.h>using namespace std;#define N 50typedef struct StackNode{ char data; struct StackNode *next;}StackNode,*LinkStack;void InitStack(LinkStack &s){ s=NULL;}void Push(LinkStack &s, char x){ StackNode *p; p=new StackNode; p->data=x; s=p;}void Pop(LinkStack &s,char x)//出栈 { if(s!=NULL) { StackNode *p; x=s->data; p=s; s=s->next; delete p; }}void Print(int flag,LinkStack s){ if(flag == 0) { cout<<1<<endl; } else if(flag ==1||s!=NULL) { cout<<0<<endl; }}int main(){ char n[100]; while(cin>>n) { LinkStack s; InitStack(s); int flag =0; int x= strlen(n); for(int i=0;i<x-1;i++) { if(n[i]=='I') { Push(s,'I');//进栈 不考虑为空的情况 进栈后出栈 } else if(n[i]=='O'&&s!=NULL) { Pop(s,'O');//出栈 } else { flag = 1; break; } } Print(flag,s); } return 0;}

img


#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int i,len;
    char s[111];
    while(cin>>s)
    {
        int count=0;
        len=strlen(s);
        for(i=0;i<len;i++)
        {
            if(s[i]=='I')
                count++;
            else
                count--;
            if(count<0)
                break;            
        }
        if(count==0)
            cout<<1<<endl;
        else
            cout<<0<<endl;
    }
    return 0;
}

img