Решение №7 из главы 16.Проверить можно ли строки из m перестановкой символов получить строку n

Задача №7 из главы 16

Проверить можно ли строки из m перестановкой символов получить строку n.
Примеры (входные данные и ответ):

1
abc и bca

-- можно

1
abc и baa

-- нельзя

1
abcc и cbac

-- можно

1
abc4c и cb55ac

-- нельзя

program compar_two_string;

function symb_count( symb: string; str2: string ): integer;
var count,i,j : integer;
begin
   count := 0;
   for i:= 1 to length(symb) do
   begin
       for j:= 1 to length(str2) do
       begin
           if symb = str2[j] then
               count += 1;
       end;
   end;
   symb_count := count;   // кол- во вхождений символа 
end;


function comparison_two_string(str1: string; str2: string): boolean;
var  count1, count2, res, i : integer;
begin
  count1 := 0;
  count2 := 0;
  res := 0;
  for i:= 1 to length(str1) do   // обход первой строки
  begin
      count1 := symb_count( str1[i], str2 );
      count2 := symb_count( str1[i], str1 );
      if( count1 = count2 ) then
          res += 1;
      count2 := 0; // обнуляем счетчик
  end;
  if (res = length(str1)) then
     comparison_two_string:= True
  else
     comparison_two_string:= False;
end;

var str1, str2 : string;
  fl : boolean;

begin   // основная программа
  fl := True;
  while fl do
  begin
    writeln('Input two string:');
    readln(str1);
    readln(str2);
    { при разной длине будет работать неправильно }
    if(length(str1)) = (length(str2)) then
       // вызов функции
       if(comparison_two_string(str1,str2)) or not (comparison_two_string(str1,str2)) then
       begin
          writeln(comparison_two_string(str1,str2));
          fl := False;
       end;
    end;
end.