Заданы две строки А и В. Можно ли переставить буквы в одном из слов так , чтобы слова стали одинаковыми? формат входных данных первая строка входного файла содержит строку A состоящую из строчных буев английского алфавита (1 ме...

Заданы две строки А и В. Можно ли переставить буквы в одном из слов так , чтобы слова стали одинаковыми? формат входных данных первая строка входного файла содержит строку A состоящую из строчных буев английского алфавита (1<=|B|<=1000). вторая строка содержит строку B в таком же формате формат выходных данных
Гость
Ответ(ы) на вопрос:
Гость
//Pascal ABC.NET Версия 2.2 Сборка 790 var a,b:string; i,j,k:integer; begin; readln(a); readln(b); for i:=1 to length(a) do    begin;      for j:=1 to length(b) do       begin;         if a[i]=b[j] then           begin;             delete(b,j,1);             inc(k);           end;        end; end; if k=length(a) then writeln('Да') else writeln('Нет'); end. Пример ввода: abc cba Пример вывода: Да
Гость
Общее решение, позволяющее удалять из строк любой "мусор" // PascalABC.Net 3.0, сборка 1066 procedure CheckString(var s:string; var n:integer); var   i:integer; begin   i:=Length(s);   while i>0 do begin     if not(s[i] in ['a'..'z']) then Delete(s,i,1);     Dec(i)   end;   n:=Length(s) end; var   s1,s2:string;   i,p,n1,n2:integer; begin   Write('Введите первую строку: '); Readln(s1);   CheckString(s1,n1);   if n1=0 then Writeln('Введенная строка не содержит допустимых символов')   else begin     Write('Введите вторую строку: '); Readln(s2);     CheckString(s2,n2);     if n2=0 then Writeln('Введенная строка не содержит допустимых символов')     else       { теперь обе строки содержат только маленькие латинские буквы }       if n1=n2 then begin         for i:=1 to n1 do begin           p:=Pos(s1[i],s2);           if p=0 then Break           else Delete(s2,p,1)           end;         if Length(s2)=0 then Writeln('Решение имеется')         else Writeln('Решения нет')         end       else         Writeln('Решения нет');     end end. Тестовое решение: Введите первую строку: this is my own deal! Введите вторую строку: Тест: *is  now=l2ead  my   sthi? Решение имеется Также имеется современное решение, которому пока что в школах не учат: // PascalABC.Net 3.0, сборка 1066 begin   var s1:=ReadString('Введите первую строку: ').Where(x->x in ['a'..'z']);   if s1.Count=0 then     Writeln('Введенная строка не содержит допустимых символов')   else begin     var s2:=ReadString('Введите вторую строку: ').Where(x->x in ['a'..'z']);     if s2.Count=0 then       Writeln('Введенная строка не содержит допустимых символов')     else       if s1.Except(s2).Count>0 then Writeln('Решения нет')       else Writeln('Решение имеется')     end end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы