default后的內(nèi)容毫無(wú)必要吧?
看了老師講得這個(gè)括號(hào)匹配的問(wèn)題,感覺(jué)有幾個(gè)問(wèn)題:
1、首先老師這個(gè)程序只能判斷所有字符都為括號(hào)的匹配問(wèn)題,只要里面存在其他字符(即使為空格),就會(huì)判斷為不匹配,比如[(4)]這種;
2、因此,default后完全是多余的,因?yàn)楦静粫?huì)存在其他字符的情形;
3、而且,default后面去掉,該程序?qū)τ谕耆抢ㄌ?hào)的字符的括號(hào)匹配判斷完全是夠用的,首先像[()]這種肯定是能判斷的,而且針對(duì)后面這種[()]],當(dāng)判斷了,前面四個(gè)括號(hào)后,pStack所指的棧和pNeedStack所指的棧此時(shí)均為空了,而且currentNeed也被置為了0;因此接下來(lái)會(huì)執(zhí)行:
if(pStack->stackEmpty()) { cout?<<?"字符串括號(hào)匹配"?<<?endl; } else { cout?<<?"字符串括號(hào)不匹配"?<<?endl; }
也就判斷出了[()]]括號(hào)不匹配了;
我想老師之所以寫了default是因?yàn)槔蠋熯€寫了字符串中還有其他字符的情形的括號(hào)匹配問(wèn)題
2019-07-27
其實(shí)說(shuō)白了一個(gè)棧就足夠解決這個(gè)問(wèn)題了,老師寫這些應(yīng)該是為了后續(xù)擴(kuò)展的需要吧
2018-09-06
我覺(jué)得有道理,只要currentNeed設(shè)為0,[()]]中最后一個(gè)‘]’就可以放入pStack棧中,此時(shí)pStack非空就可得不匹配