Напишите программу, которая находит все символы в символьной строке, которые встречаются...

0 голосов
116 просмотров

Напишите программу, которая находит все символы в символьной строке, которые встречаются только один раз.

Входные данные
На вход программы подаётся символьная строка.

Выходные данные
Программа должна вывести все символы, которые встречаются в строке только один раз, в порядке возрастания их ASCII-кодов. Если таких символов нет, нужно вывести слово 'NO'.

Примеры
входные данные
asd12ad2
выходные данные
1s
Pascal ABC 1.8 с использованием множеств


Информатика (17 баллов) | 116 просмотров
Дан 1 ответ
0 голосов

Var uniq: Set of Char;
    used: Set of Char;
    s: string;
    i: integer;
    done: boolean;
    c: char;
begin
uniq := [];
used := [];
readln(s);

for i := 1 to length(s) do
  if not (s[i] in used) then
  begin
    include(uniq, s[i]);
    include(used, s[i]);
  end
  else
  begin
    exclude(uniq, s[i]);
  end;

done := False;
for c := #0 to #255 do
  if (c in uniq) then
  begin
    done := True;
    write(c);
  end;

if not done then
  write('NO');

writeln;
end.

(1.2k баллов)