
Nevipozsa
7 год назад
Дана строка S, состоящая из слов, разделённых пробелами. Выведите все слова, которые встречаются в S ровно один раз. Формат входных данных Во входном файле дана строка S. Строка S состоит из строчных букв латинского алфавита и пробелов; в ней есть хотя бы одна буква, ёe длина не превышает 100 символов. Формат выходных данных Выведите все слова, которые встречаются в S ровно один раз. Каждое слово выводите на новой строке в том порядке, в котором они встречаются в S. Примеры: Вход to be or not to be Выход or not.
UPD. На Free Pascal надо
ОТВЕТЫ

Альфред
Jul 11, 2019
var s,s1,s2:string;
p,k:integer;
begin
writeln(Введите строку:);
readln(s);
s1:=s+ ;
while pos( ,s1)gt;0 do delete(s1,pos( ,s1),1);
while s1lt;gt; do
begin
p:=pos( ,s1);
s2:=copy(s1,1,p-1);
delete(s1,1,p);
k:=1;
while pos(s2,s1)gt;0 do
begin
k:=k+1;
delete(s1,pos(s2,s1),p);
end;
if k=1 then writeln(s2);
end;
end.
Пример:
Введите строку:
to be or not to be
or
not
p,k:integer;
begin
writeln(Введите строку:);
readln(s);
s1:=s+ ;
while pos( ,s1)gt;0 do delete(s1,pos( ,s1),1);
while s1lt;gt; do
begin
p:=pos( ,s1);
s2:=copy(s1,1,p-1);
delete(s1,1,p);
k:=1;
while pos(s2,s1)gt;0 do
begin
k:=k+1;
delete(s1,pos(s2,s1),p);
end;
if k=1 then writeln(s2);
end;
end.
Пример:
Введите строку:
to be or not to be
or
not
31
Смежные вопросы: