下面是一個字符串A和串B與atmost一個錯配 即進行比較的代碼, ABC是相同ABX或AXC或XBC但是,不相同AXZ與一個錯配的子串比較
我做檢查幾個案例,但網站說它提供了錯誤的答案。有人能幫忙弄清楚這段代碼失敗了嗎? 另外,如果有人能爲相同的問題提供更好的算法,我會很高興。
TY
int compare(string a, int pos, string b) {
int count = 0;
int length = b.length()-1;
int mid = b.length() /2;
if(pos+length >= a.length())
return 0;
for(int i=0,j=pos;i<=mid;i++,j++) {
if(i == mid) {
if(a[j] != b[i])
count ++;
}
else {
if(a[j] != b[i])
count ++;
if(a[pos+length - i] != b[length -i])
count ++;
}
if(count >= 2) return 0;
}
return 1;
}
聞起來像功課。 – Till 2012-02-23 22:08:58
不是功課,而是來自一個編程網站 – Rama 2012-02-23 23:30:43
無論如何,討論這裏的作業有什麼問題? – jogojapan 2012-02-23 23:34:29