两长度相同的字符串,如:abcdef123与 
      xbcyzf123
返回相同对应相同的字符串的最大个数,以上字符串相同的有bc和f123.我想让其返回的数据相同数为4而不是为2
要求其位置必须相同!!如:
abcdef1233与 
xbcf123233
以上对应位置中完全相同的字符串为3,即字符串233

解决方案 »

  1.   


    procedure LongestSameString(S1, S2: String;  var iStart, iLength: Integer);
    var
      i, j : Integer;
    begin
      iStart := 0;
      iLength := 0;
      for i := 1 to Length(S1) do
      begin
        for j := iLength + 1 to Length(S1) - i + 1 do
        begin
          if Copy(S1, i, j) = Copy(S2, i, j) then
          begin
            iStart := i;
            iLength := j;
          end;
        end;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      iStart , iLength : Integer;
    begin
      LongestSameString('abcdef1233', 'xbcf123233', iStart, iLength);
      ShowMessage (Format('Start = %d, Length = %d', [iStart, iLength]));
    end;