1、题目:
Problem Description
假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则成为非法序列。请编写一个对该操作序列的有效性进行判断,若有效输出1,无效输出0。
Input
有多组数据,每组为由I和O组成的序列,序列长度不超过50。
Output
操作序列有效输出1,无效输出0。
Sample Input
IOIIOIOO IOOIOIIO
Sample Output
1 0
2.参考代码:
#include <iostream>
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;
}