[Zj b838][104北二區桃竹苗基資訊學科能力複賽] 括號問題

 題目連結:https://zerojudge.tw/ShowProblem?problemid=b838

思考過程:原先想說「遍歷整個字串後,如果左括號數量等於右括號數量,則答案為正確。」。可不可行呢?? 答案是不行,因為假設出現像「))((」的字串就會出錯。

想法1:如果是「(」就push進stack,是「)」且stack的top等於「(」就進行pop操作,否則就把「)」push進stack。假如遍歷完字串後stack為empty,則答案為正確。

想法2:設兩變數L和R紀錄左、右括號的數量。只要任意時間點R>L,答案必為錯。如果最終L等於R則答案為正確。

cpp code:

想法1:https://github.com/Pizza-Man217/Zerojudge-solutions/blob/master/b838-1.cpp

想法2:https://github.com/Pizza-Man217/Zerojudge-solutions/blob/master/b838-2.cpp

留言

這個網誌中的熱門文章

[Zj e511] [UVA 11364]-Parking

[Zj d039][UVA 11044] Searching for Nessy