[()]] 這個修改老師是不是講錯了 if (str[i] != currentNeed) else pNeedStack->pop(currentNeed) 當(dāng)?shù)谒膫€結(jié)束后 currentNeed就pop出來等于‘】’了 然后又不滿足上面的IF 所以跳到else 直接空了
2017-10-02
接上,最后檢測棧長和matching ,棧長==0 &&matching 則匹配,否則不匹配。
這樣寫可以跳過中間的空格等無關(guān)字符(實際應(yīng)用也多半如此)。如果要求異常字符直接不匹配,可以修改default。親自編碼檢測。歡迎探討。
這樣寫可以跳過中間的空格等無關(guān)字符(實際應(yīng)用也多半如此)。如果要求異常字符直接不匹配,可以修改default。親自編碼檢測。歡迎探討。
2017-09-27
我只用了一個棧實現(xiàn)的,就是“wjxdsg”小伙伴說的思路。簡要敘述一下細(xì)節(jié),給個參考:
首先定義一個變量matching表示當(dāng)前是否匹配(初值為true),循環(huán)遍歷整個字符數(shù)組,循環(huán)中用switch語句,如果是左括號就入棧,右括號就出棧,將出棧字符與目前字符匹配,如果匹配,則break,不匹配則將matching賦為false后break。(注意這里同樣需要考慮前面括號都匹配,而末尾出現(xiàn)右括號的情況,所以必須在出棧前檢測站是否為空,為空就將matching賦為false,break)。default直接break(跳過無關(guān)字符),switch后檢測matching,為false則跳出循環(huán)。接下
首先定義一個變量matching表示當(dāng)前是否匹配(初值為true),循環(huán)遍歷整個字符數(shù)組,循環(huán)中用switch語句,如果是左括號就入棧,右括號就出棧,將出棧字符與目前字符匹配,如果匹配,則break,不匹配則將matching賦為false后break。(注意這里同樣需要考慮前面括號都匹配,而末尾出現(xiàn)右括號的情況,所以必須在出棧前檢測站是否為空,為空就將matching賦為false,break)。default直接break(跳過無關(guān)字符),switch后檢測matching,為false則跳出循環(huán)。接下
2017-09-27