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

uses crt;
{
  Ввести строку символов ( предусмотреть ввод пустой строки или строки из одних пробелов).
  Разделителями слов в строке могут быть «_»,«:»,«;»,«,», «( )»(предусмотреть использование множества для разделителей).
  Определить слово максимальной длины, в котором все символы различны.
  Компилятор: Pascal ABC
}

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

56 + = 64