輸入格式如下: 3
} 輸出格式如下:
yes
no yes
演算法描述: 利用棧來判斷(注意出棧時,考慮棧是否為空;最後匹配的結果應該是棧為空)
1)從左到右進行掃瞄字元
2)若為左括號『(』『[』『')) else
}public
boolean
isbalanced(string str)elseelseelse}}
}//end for
if(stack.empty()== false)
return flag;
}public
static
void
main(string args) else}}
}這裡我又犯了乙個錯誤,那就是,首先scanner物件通過nextint()接收乙個整數,後面依次接收字串時候,我直接用了nextline()導致輸出有誤,因為 整數後面的\n會被nextline()接收。所以要在接收字串之前呼叫一次nextline()。其實這裡最好用next()。關於next()和nextline()的區別,請參考之前的文章
利用棧的特性判斷括號是否匹配
括號匹配的檢驗 假設輸入字串中有三種括號,大括號 中括號 小括號,其巢狀的方式是隨意的。即類似的都為正確格式。檢驗括號是否匹配的方法可用 期待的急迫程度 來解決。例如下面的括號串 當計算機接受第乙個括號時,它期待著第六個括號與它見面,然而我們輸入的卻是第二個括號,同理,一直到第三個括號,3期待著4與...
利用棧判斷字串括號是否匹配
任務描述 本關任務 基於棧stack資料結構判斷字串中的括號是否匹配,字串中僅包含如下字元 相關知識 為了完成本關任務,你需要掌握 1.如何建立乙個棧,2.入棧 出棧操作。演算法思想 輸入符號串str 初始化棧s for i 0 str i 0 i 掃瞄括號串 若棧不空,則匹配不成功,否則匹配成功 ...
判斷括號是否匹配
日期 2009.6.20 問題 設計乙個演算法,判斷乙個算術表示式中的括號是否配對。算術表示式儲存在帶頭結點的單迴圈鍊錶中,每個結點有兩個域 ch和 link 其中ch 域為字元型別。1 思路 根據括號的特點 進行匹配的時候,第乙個做括號最後乙個匹配,最後乙個左括號與第乙個右括號相匹配,恰好可以使用...