/* ----------------------------------------------------------------------
假设以S和X分别表示入栈和出栈的操作,则初态和终态均为栈空的入栈和出栈的
操作序列可以表示为公由S和X组成的序列。称可以操作的序列为合法序列
(例如,SXSX为合法序列,SXXS为非法序列)。试给出区分给定序列为合法序列
或者非法序列的一般准则。
---------------------------------------------------------------------- */
#include<stdio.h>
int main(void)
{
char szInput[100] ;
int i = 0 ;
int t = 0 ;
int nSnum = 0 ;
int nXnum = 0 ;
while(scanf("%s",szInput))
{
while(szInput[i] != '\0')
{
if('S' == szInput[i])
{
nSnum++ ;
}
else
{
nSnum-- ;
if(nSnum < 0)
{
break ;
}
}
i++ ;
}
if(0 == nSnum)
{
puts("Yes") ;
}
else
{
puts("No") ;
}
nSnum = 0 ;
i = 0 ;
}
return 0 ;
}
/* ------------------------------------
后记:
最近貌似不知道得了什么病....好像思维变得迟缓,又或者根本不会思考....就好比这
一道简单得不能再简单的题目,我也好像用了15分钟....而且一点劲头都没有,好像真的
不会思考一样......
------------------------------------ */
区分给定序列为合法序列
最新推荐文章于 2021-12-25 14:58:55 发布