Код:
s:string; \\твоя строка
curnum:byte; \\ длина текущей последовательности
str:=s[0]; \\определяем первый символ - он же начало последовательности;
mins:=s[0]; \\собственно, символы последовательности
maxl:=length(s); \\ предположим, что последовательность ОДНА, то есть все символы одинаковые;
curnum:=1;
For i:=1 to length(s)-1 do
begin
if s[i]=str then inc(curnum) \\если символ тот же, что и остальные, увеличиваем длину цепочки
else
begin
if curnum<maxl then maxl:=curnum; \\если длина цепочки меньше, то заменяем значение
mins:=s[i-1]; \\не забываем указать символ этой последовательности
str:=s[i]; \\определяем символы новой последовательности
end;
end;
if curnum<maxl then begin maxl:=curnum; mins:=s[i-1]; end; \\проверяем последнюю цепочку (тут немного г****код получился)
for i:=1 to maxl do Write(mins); \\выводим самую маленькую цепочку
Стоит отметить, что он не будет выводить 2 цепочки, если имеются две самые маленькие последовательности, причем, из разных символов.