识别依次读入的一个以@为结束符的字符序列是否是形如“序列1&序列2”模式的字符序列,其中序列1和序列2都不含字符”&”,且序列1是序列2的逆序列。例如”a+b&b+a”是属于该模式的字符序列,而”1+2&2+1”不是。
Status IsStr(char *str){
int i = 0;
char *e;
SqStack *S;
InitStack(S);
//先将“&”前的字母入栈
while(str[i] != '\0' && str[i] != '&'){
Push(S, str[i]);
i++;
}
//若字符串中没有出现"&",则直接返回ERROR;
if(str[i] == '\0')return ERROR;
//若出现了"&",则继续后面的操作
i ++; //将指针移到"&"后面的元素
//在出栈的过程中将与"&"后面的元素进行比较
while(str[i] != '\0' && S->top != -1){
Pop(S, e);
if(*e == str[i]){
i ++;
}else{
return FALSE;
}
}
}