[問題] 括號匹配問題

作者: hth9494 (hth9494)   2016-08-04 11:31:32
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
http://zerojudge.tw/ShowProblem?problemid=b304
餵入的資料(Input):
一串含有括號的字串
預期的正確結果(Expected Output):
正確AC
錯誤結果(Wrong Output):
WA
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/NNMybgKb
補充說明(Supplement):
我的想法是,遇到左小括號或左中括號,就無條件推進stack
遇到右小括號或右中括號,就去看看stack頂端是否為匹配的括號
如果是就做pop,不是就push(其實不是的話應該可以直接輸出錯誤)
最後我看看stack是否為空來決定該輸入是否為合法的括號串
丟執行的時候給我回復WA,因為沒有測資
希望各位能幫我看看,我陷入什麼邏輯錯誤
謝謝
作者: LPH66 (-6.2598534e+18f)   2016-08-04 11:56:00
cin >> data 的讀取會跳過空行你可以使用 cin.getline()
作者: hth9494 (hth9494)   2016-08-04 12:44:00
使用getline之後,他在測試執行的地方報錯他說line2的地方,正確答案是No,我的答案輸出Yesline2的測試資料是(([()])))但是我在自己電腦上,執行出的結果是No沒錯不曉得他為什麼說我輸出Yes這是改過的程式碼 http://codepad.org/7c2F0HUx更改的地方有新增註釋,希望能再幫我看看,謝謝
作者: s25g5d4 (function(){})()   2016-08-04 13:01:00
有 std::getline 可以放 string, 不要用 cin.getline()我拿你改過的程式碼送出去 AC 了阿
作者: hth9494 (hth9494)   2016-08-04 13:30:00
是的,我剛剛也發現了,只是不知道為何測試會錯,哈哈我改成std::getline()後也能正確AC 感謝兩位大大

Links booklink

Contact Us: admin [ a t ] ucptt.com