判断栈的操作序列是否合法

I表示入栈,O表示出栈

#include
#include
int Judge(char a[]) {
	int i = 0;
	int j=0, k=0;
	while (a[i]!='\0') {
		switch (a[i]){
		case 'I':
			j++;
			break;
		case 'O':
			k++;
			if (j < k) {
				printf("不合法!");
				exit(0);
			}
		}
		i++;
		
	}
	if (j != k)
		printf("非法");
	else {
		printf("合法!");
	}
}
int main() {
	char a[]="IOIOO";
	Judge(a);
	return 0;
}

你可能感兴趣的:(王道数据结构大题,算法,c语言)