作者hth9494 (hth9494)
看板C_and_CPP
標題[問題] 括號匹配問題
時間Thu Aug 4 11:31:32 2016
開發平台(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,因為沒有測資
希望各位能幫我看看,我陷入什麼邏輯錯誤
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.60.210
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1470281497.A.34A.html
推 LPH66: cin >> data 的讀取會跳過空行 08/04 11:56
→ LPH66: 你可以使用 cin.getline() 08/04 11:56
→ hth9494: 使用getline之後,他在測試執行的地方報錯 08/04 12:44
→ hth9494: 他說line2的地方,正確答案是No,我的答案輸出Yes 08/04 12:44
→ hth9494: line2的測試資料是(([()]))) 08/04 12:45
→ hth9494: 但是我在自己電腦上,執行出的結果是No沒錯 08/04 12:46
→ hth9494: 不曉得他為什麼說我輸出Yes 08/04 12:46
→ hth9494: 更改的地方有新增註釋,希望能再幫我看看,謝謝 08/04 12:47
推 s25g5d4: 有 std::getline 可以放 string, 不要用 cin.getline() 08/04 13:01
推 s25g5d4: 我拿你改過的程式碼送出去 AC 了阿 08/04 13:06
→ hth9494: 是的,我剛剛也發現了,只是不知道為何測試會錯,哈哈 08/04 13:30
→ hth9494: 我改成std::getline()後也能正確AC 感謝兩位大大 08/04 13:31