为了账号安全,请及时绑定邮箱和手机立即绑定

default后的内容毫无必要吧?

看了老师讲得这个括号匹配的问题,感觉有几个问题:

1、首先老师这个程序只能判断所有字符都为括号的匹配问题,只要里面存在其他字符(即使为空格),就会判断为不匹配,比如[(4)]这种;

2、因此,default后完全是多余的,因为根本不会存在其他字符的情形;

3、而且,default后面去掉,该程序对于完全是括号的字符的括号匹配判断完全是够用的,首先像[()]这种肯定是能判断的,而且针对后面这种[()]],当判断了,前面四个括号后,pStack所指的栈和pNeedStack所指的栈此时均为空了,而且currentNeed也被置为了0;因此接下来会执行:

if(pStack->stackEmpty())	
{		
cout << "字符串括号匹配" << endl;	
}	
else	
{		
cout << "字符串括号不匹配" << endl;	
}

也就判断出了[()]]括号不匹配了;

我想老师之所以写了default是因为老师还写了字符串中还有其他字符的情形的括号匹配问题

正在回答

2 回答

其实说白了一个栈就足够解决这个问题了,老师写这些应该是为了后续扩展的需要吧

0 回复 有任何疑惑可以回复我~

我觉得有道理,只要currentNeed设为0,[()]]中最后一个‘]’就可以放入pStack栈中,此时pStack非空就可得不匹配

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

default后的内容毫无必要吧?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信