Предмет: Информатика, автор: pokipoki

Помогите,пожалуйста,написать программу в Pascal ABC
ОЧЕНЬ НУЖНО

Приложения:

Ответы

Автор ответа: Аноним
0
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
begin
  var s:=ReadlnString('>');
  var s1:=s.Trim;
  var a:=s1.ToWords.ToArray; // a - массив слов
  // b - массив слов с хвостовыми пробелами
  var q:=Regex.Matches(s1,'(S+s*)');
  var b:array of string;
  SetLength(b,q.Count);
  var i:=0;
  foreach var e in q do begin
    b[i]:=e.ToString;
    Inc(i)
    end;
  // частотный словарь для первого слова
  var d:=new Dictionary<char,integer>;
  foreach var e in a[0] do d[e]:=d.Get(e)+1;
  // все повторяющиеся символы из словаря помещаем в массив dub
  var dub:=d.Where(x->x.Value>1).Select(x->x.Key).ToArray;
  if dub.Length=0 then Writeln('НЕТ')
  else begin
    var res:=b[0]; // начало выходной строки
    i:=1;
    while s[i]=' ' do begin res:=' '+res; Inc(i) end;
    for i:=1 to a.Length-1 do begin
      var found:=false;
      foreach var e in dub do begin
        found:=Pos(e,a[i])>0;
        if found then break
        end;
      if found then b[i]:=' '*(b[i].Length-a[i].Length);
      res+=b[i]
      end;
      i:=s.Length;
      while s[i]=' 'do begin res+=' '; Dec(i) end;
      Writeln(res)
  end
end.

Тестовое решение:
>  балабол - по  данным словаря болтун,  человек, который  много говорит попусту 
 балабол - по       который  много говорит попусту
Похожие вопросы
Предмет: Химия, автор: yulya01032000