[问题] 括号匹配问题

楼主: 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