作者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
推 ledia:不一樣吧? 一個是找第一個一樣的, 一個是找最後一個一樣的? 11/17 18:19
→ ledia:啊 沒看到只出現一次 orz 11/17 18:20
→ bleed1979:我剛做了,保證出現一次失效,有重複的字元,網友提出了 11/17 20:05
推 lwecloud:老實說我看不懂原PO的問題...AC跟WA是什麼? 11/18 09:57
推 VictorTom:ACM還是其他online judge的題目, Accept或Wrong Answer? 11/18 10:12
推 raincole:抱歉那題是我出的...然後測資好像有出錯... 11/18 21:23
→ chchwy:XDDDDDD 原作者出現!!! 11/18 23:51