Определить слово максимальной длины в котором все символы различны и вывести его на экран — Pascal (Паскаль) — CF

Ввести строку символов предусмотреть ввод пустой строки ил строки из одних пробелов). Разделителями слов в строке могут быть «_», «;», «:», «,», » » (предусмотреть использование множества разделителей). Надо определить слово максимальной длины в котором все символы различны и вывести его на экран.

Program lab4;
uses crt;

const
  mn:set of char= ['_', ',', ':', ';', ' '];
var
  a,s:string;
  f:boolean;
  c:string;
  i,j,k,d:integer;
  posm,pos,max:integer;
begin
  clrscr;
  writeln ('Введите строку');
  readln(s);
  i:=1;
  max:=0;
  while i<length(s) do begin
    if s[i] in mn then inc(i)
    else begin
      pos:=i;
      d:=0;
      while (i<=length(s)) and not ((s[i] in mn)) do begin
        inc(d);
        inc(i);
      end;
      a:=copy(s,pos,d);
      j:=1;
      f:=true;
      while j<=length(a) do begin
        c:=a[j];
        for k:=j+1 to length(a) do begin
          if a[k]=c then f:=false;
        end;
        inc(j);
      end;
      if (f=true) and (max<length(a)) then begin
        max:=length(a);
        posm:=i-length(a);
      end;
      a:='';
    end;
  end;
  if max=0 then writeln ('Таких слов нет')
  else writeln('Это слово: ',copy(s,posm,max));
  readkey;
end.

Leave a Comment