Оставить в строке только первое вхождение каждого символа. Взаимный порядок оставленных символов сохранить - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Решил данную задачу так:
Она работает и работает правильно, но хотелось бы обойтись только одной строкой, которую вводит пользователь. И удалить из неё лишние символы

встроеной функцией delete.

Как ни бился, так ничего и не получилось. То выход за границу цикла, то удаление всех символов из строки получалось...

Решение задачи: «Оставить в строке только первое вхождение каждого символа. Взаимный порядок оставленных символов сохранить»

textual
Листинг программы
procedure read(var x: string);
begin
  if input.sr <> nil then
    read(input, x)
  else 
    try
      CurrentIOSystem.read(x)
    except
      on e: Exception do
        raise e;
    end;
end;

Объяснение кода листинга программы

  1. Входные данные: строка x.
  2. Проверяется, не пуст ли входной поток input.sr. Если он не пуст, то вызывается функция read(input, x), где input - это текущий вводной поток, а x - это строка, в которую считываются символы.
  3. Если входной поток пуст, то вызывается метод read текущего вводного потока input, передавая в качестве аргумента строку x. Если вводной поток не может считать символ (например, достигнут конец файла), то вызывается исключение Exception.
  4. В случае возникновения исключения Exception вызывается обработчик исключений, который перехватывает исключение и повторно вызывает его.

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы