【发布时间】:2013-06-19 08:39:09
【问题描述】:
我正在编写这个函数,其中 如果一个字符串仅相差一个字符,则返回不同的字符位置,如果它们是正确的,则应该返回 -1 和 -10大小写相差超过 1 个字符。
仅作为示例,'010' 和 '110' 或 '100' 和 '110' 效果很好,分别返回 0 和 1...
但是,当我尝试使用'100' 和'101' 或'110' 和'111' 我得到-1 的结果,而它应该是2!我已经完成了桌面测试,但我不能只看到错误。
function combine (m1, m2 : string) : integer;
var
dash : integer;
distinct : integer;
i : integer;
begin
distinct := 0;
dash := -1;
for i := 0 to Length(m1)-1 do
begin
if m1[i] <> m2[i] then
begin
distinct := distinct+1;
dash := i;
if distinct > 1 then
begin
result:= -10;
exit;
end;
end;
end;
result := dash;
end;
我总是得到相同长度的字符串, 我做错了什么?
【问题讨论】: