задача 8 урок 17

задача 8 урок 17

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

abc и bca
-- можно
abc и baa
-- нельзя

abcc и cbac
-- можно

abc4c и cb55ac
-- нельзя

РЕШЕНИЕ

program task_8_lesson_17;
var s, s1: string;
    b: char;
    i, j: integer;
begin
  s := 'qwe  rty';
  s1 := 'y trew q';
  if length(s) = length(s1) then // если длины строк равны то сравниваем дальше
    begin
    for i := 1 to length(s) do
      for j := i to length(s1) do
        if (s[i] = s1[j]) then  // приводим строки к одному виду
          begin
            b := s1[i];
            s1[i] := s1[j];
            s1[j] := b;
          end;
    if (s = s1) then // если после сортировки строки равны -> все символы были равны
      write('Mogno')
    else
      write('Nel`zya');
    end
  else
     write('Nel`zya');
  readln
end.

КОНСОЛЬ

qwe  rty
y trew q
Mogno
vedro-compota's picture

решить без сортировки

_____________
матфак вгу и остальная классика =)

Решение без сортировки (привел строки к одному виду путём присвоения и сравнил их)

program task_8_lesson_17;
var s, s1: string;
    i, j: integer;
begin
  s := 'qwe  rty';
  s1:= 'y trew q';
  if length(s) = length(s1) then // если длины строк равны то сравниваем дальше
    begin
      for i := 1 to length(s) do
        for j := 1 to length(s1) do
          if (s[i] = s1[j]) then  // приводим строки к одному виду типа: АААА...
            begin
              s[i] := 'A';
              s1[j] := 'A'; // замена символа и выход, чтобы не заменить лишний
              break;
            end;
      if (s = s1) then
        write('mogno ')
      else
        write('nelzya');
    end
  else
     write('Nel`zya');
  readln
end.
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)