Задача по программированию ** Паскаль, нужна помощь. Дана строка состоящая из строчных...

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

Задача по программированию на Паскаль, нужна помощь.
Дана строка состоящая из строчных букв английского алфавита. Необходимо определить какие буквы встречаются в этой строке больше одного раза.
Формат входных файлов: Входной файл содержит одну строку S длиной не более чем 100 символов, состоящую из букв a,b,c...
Выходной файл должен содержать в алфавитном порядке последовательность букв строки S, которые встречаются в ней больше одного раза. Каждая буква выводится не больше одного раза.


Информатика (90 баллов) | 35 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadAllText('input.txt');
  WriteAllText('output.txt',s.GroupBy(c->c).Select(t->(t.Key,t.Count))
      .Where(t->t[1]>1).Select(t->t[0]).OrderBy(t->t).JoinIntoString(''))
end.

Пример
Во входном файле input.txt записана строка
petrwpoqwwefrnmvndihbgfuiusbnyaysinrivniweuwepkwqeofkwpr
В выходном файле output.txt будет получена строка
befiknopqrsuvwy
(150k баллов)
0 голосов

Var t1,t2:text;
s:string;
k:array['a'..'z']of integer;
i:integer; c:char;
begin
assign(t1,'input.txt');
reset(t1);
assign(t2,'output.txt');
rewrite(t2);
readln(t1,s);
for c:='a' to 'z' do k[c]:=0;
for i:=1 to length(s) do k[s[i]]:=k[s[i]]+1;
for c:='a' to 'z' do
 if k[c]>1 then write(t2,c);
writeln(t2);
close(t1); close(t2);
end.

Пример:
Файл input.txt:
xyzabcdefgabcdx

Файл output.txt
abcdx

(194k баллов)
0

Input и Output - стандартные текстовые файлы ввода и вывода соответственно. Так что формально всё ОК. )

0

Ну прямо изругали совсем. Придется исправить.