Удалить в каждом слове повторяющиеся символы (проверьте правильность) - Turbo Pascal
Формулировка задачи:
Вот предложение: "Дана строка. Группы символов, разделенные пробелами и не содержащие пробелы
внутри себя, будем называть словами."
Написать программу, удаляющую в каждом слове повторяющиеся символы.
Решение задачи: «Удалить в каждом слове повторяющиеся символы (проверьте правильность)»
textual
Листинг программы
var s: string;
i: integer;
m: set of char;
begin
writeln('Введите строку:');
readln(s);
m := [];
i := 1;
while i <= length(s) do
if s[i] in m
then delete(s, i, 1)
else begin
if s[i] = ' '
then m := []
else include(m, s[i]);
inc(i)
end;
writeln('Результат:');
writeln(s);
readln
end.
Объяснение кода листинга программы
- Вводится строка с помощью функции readln.
- Создается пустое множество символов m.
- Инициализируется переменная i, которая будет использоваться как счетчик символов.
- Запускается цикл while, который будет выполняться до тех пор, пока i меньше или равно длине входной строки s.
- Внутри цикла проверяется, есть ли текущий символ s[i] в множестве m.
- Если символ присутствует в m, то он удаляется из строки s с помощью функции delete.
- Если символ отсутствует в m, то он добавляется в m.
- После завершения цикла while выводится результат на экран с помощью функции writeln.
- Завершается программа вызовом функции readln для чтения следующего ввода.