作者chchwy (mat)
看板C_and_CPP
标题请问string::find()的行为
时间Tue Nov 17 16:46:56 2009
其实我的问题是出自ZeroJudge d456: 社办合并 这题
http://zerojudge.tw/ShowProblem?problemid=d456
问题中 有个地方必须搜寻字串中某个字元的位置 (该字元保证只出现一次)
在我看来
下面这两段程式的结果
应该完全相同
//===AC===
int a,b;
for(int i=0; i<line.length(); i++) {
if(line[i] == club[0])
a = i;
if(line[i] == club[1])
b = i;
}
//===AC===
//===WA===
int a = line.find(club[0]);
int b = line.find(club[1]);
//===WA===
但是实际跑起来
上面会AC 下面会WA
不知道为什麽会这样,orz...
拿来请教各位 谢谢~
附上完整的程式码
http://nopaste.csie.org/eb543
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.127.47.36
1F:推 ledia:不一样吧? 一个是找第一个一样的, 一个是找最後一个一样的? 11/17 18:19
2F:→ ledia:啊 没看到只出现一次 orz 11/17 18:20
3F:→ bleed1979:我刚做了,保证出现一次失效,有重复的字元,网友提出了 11/17 20:05
4F:推 lwecloud:老实说我看不懂原PO的问题...AC跟WA是什麽? 11/18 09:57
5F:推 VictorTom:ACM还是其他online judge的题目, Accept或Wrong Answer? 11/18 10:12
6F:推 raincole:抱歉那题是我出的...然後测资好像有出错... 11/18 21:23
7F:→ chchwy:XDDDDDD 原作者出现!!! 11/18 23:51