Цитата:
Сообщение от Asinkrit
Пришло на ум, одно из решений) отсортировать оба массива, а потом пробежаться в одном цикле по обоим массивам, до конца(истина) или до первого несовпадения(ложь)...
|
А я сразу не сообразил. Только не так, а как сказано в задании - пытаемся перестроить ( отсортировать )
А под
В
PHP код:
function TForm1.Compare2Mass2(A, B: array of Integer): Boolean;
var
i, n, tmp, lenA : Integer;
netA: Boolean;
begin
Result := false;
lenA := Length(A);
if lenA <> Length(B) then
Exit; // если длины не совпадают то не получится
for i := 0 to LenA - 1 do // перестроим А как В
if B[i] <> A[i] then
begin // очередной несовпадает
netA := true;
// ищем в оставшихся
for n := i + 1 to LenA - 1 do
if B[i] = A[n] then
begin // если нашли переставляем
tmp := A[i];
A[i] := A[n];
A[n] := tmp;
netA := false;
break;
end;
if netA then // если не нашли значит нельзя
Exit;
end;
// если еще не вышли значит все элементы переставлены
Result := true;
end;