Язык Pascal ABC
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству: в слове есть повторяющиеся буквы
На турбе отмечу лучший ответ.
Answers & Comments
S, tmp, buf, firstW: string;
i, j, k, p, ii: integer;
ch: char;
begin
S := 'privit kak dela putin znanija test proverka privit teste.';
firstW := copy(S, 1, pos(' ', S) - 1);
writeln('Исходная строка: ', S);
writeln('Первое слово = ', firstW);
i := 0;
while (S[i] <> '.') do
begin
i := i + 1;
if (S[i] <> ' ') then
begin
while ((S[i] <> ' ') and (i < Length(S))) do
begin
tmp := tmp + S[i];
i := i + 1;
end;
buf := tmp;
p := 0;
ii := 1;
while ii <= Length(buf) do
begin
k := 0;
ch := buf[ii];
for j := Length(buf) downto ii do
if buf[j] = ch then
begin
k := k + 1;
delete(buf, j, 1);
end;
if k > 1 then
p := 1;
end;
if ((p <> 0) and (tmp <> firstW)) then
writeln(tmp);
tmp := '';
end;
end;
readln;
end.