李春葆老师版数据结构,习题9.2,我觉得这样写简单点,不知道可以写可以吗?
设计一个算法判定所给的操作序列是否合法。若合法返回 真;否则返回假。(假设被判定的操作序列已存入一维数组中)。
#include <stdio.h>
#include <string.h>
#define maxSize 100
int main()
{
char str[maxSize];
int size = 0;//栈大小
scanf("%s", str);
int i;
for (i = 0;i < strlen(str);i++)
{
if (str[i] == 'I')
{
size++;
}
if (str[i] == 'O' && size > 0)
{
size--;//减一
}
if (size < 0)
{//如果栈数为负数了
printf("非法序列\n");
return 0;
}
}
if (size == 0)
printf("ture\n");
else
printf("false\n");
return 0;
}