[問題] 括號匹配問題

看板C_and_CPP作者 (hth9494)時間7年前 (2016/08/04 11:31), 編輯推噓3(3010)
留言13則, 3人參與, 最新討論串1/1
開發平台(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

08/04 11:56, , 1F
cin >> data 的讀取會跳過空行
08/04 11:56, 1F

08/04 11:56, , 2F
你可以使用 cin.getline()
08/04 11:56, 2F

08/04 12:44, , 3F
使用getline之後,他在測試執行的地方報錯
08/04 12:44, 3F

08/04 12:44, , 4F
他說line2的地方,正確答案是No,我的答案輸出Yes
08/04 12:44, 4F

08/04 12:45, , 5F
line2的測試資料是(([()])))
08/04 12:45, 5F

08/04 12:46, , 6F
但是我在自己電腦上,執行出的結果是No沒錯
08/04 12:46, 6F

08/04 12:46, , 7F
不曉得他為什麼說我輸出Yes
08/04 12:46, 7F

08/04 12:47, , 8F
這是改過的程式碼 http://codepad.org/7c2F0HUx
08/04 12:47, 8F

08/04 12:47, , 9F
更改的地方有新增註釋,希望能再幫我看看,謝謝
08/04 12:47, 9F

08/04 13:01, , 10F
有 std::getline 可以放 string, 不要用 cin.getline()
08/04 13:01, 10F

08/04 13:06, , 11F
我拿你改過的程式碼送出去 AC 了阿
08/04 13:06, 11F

08/04 13:30, , 12F
是的,我剛剛也發現了,只是不知道為何測試會錯,哈哈
08/04 13:30, 12F

08/04 13:31, , 13F
我改成std::getline()後也能正確AC 感謝兩位大大
08/04 13:31, 13F
文章代碼(AID): #1NehSPDA (C_and_CPP)