Нужно написать программу на Паскале, которая будет удалять из строчки все

Нужно написать программу на Паскале, которая будет удалять из строки все стоящие попорядку однообразные элементы, если их больше 2. Образцы: aabbbc -gt; aac;
aabbbac -gt; c;

Задать свой вопрос
София Силанова
"будет удалять из строчки все стоящие попорядку схожие элементы, если их больше 2". aabbbac -> c; Куда делись a? Ведь кол-во попорядку идущих a не больше 2, либо считается кол-во всех а в строке? Тогда зачем писать о том что удаляются попорядку стоящие элементы? Пример правильно подобран? Если кол-во а в строке больше двух (не главно попорядку идущие они либо нет) , то они удаляются? Этот вывод можно сделать из заключительного образца, в задаче, как понял речь о приятелем.
Shhadneva Oksana
При удалении bbb aa и ac сдвигаются и выходит aaac
2 ответа
Var s:string; c:char; i:integer;
begin
write('s = '); readln(s);
i:=1;
while (i+2lt;=length(s)) do
 if(s[i]=s[i+1])and(s[i+1]=s[i+2])
  then begin
        c:=s[i];
       while (ilt;=length(s))and(c=s[i]) do delete(s,i,1);
       i:=1;
       end
  else i:=i+1;
writeln(s);
end.
Альбина
Было бы не плохо, если бы ваша программа удаляла символы, если их больше 3
Рекурсивный подход.(Знаки тоже устраняет)
function grad(s:string):string;
var
i:byte;
detect:boolean;
begin
while i lt; length(s) - 2 do
begin
inc(i);
if (s[i] = s[i+1]) and (s[i] = s[i+2]) then проверка последовательности из 3 елементов
begin
delete(s,i,3); если да - удаляем их
detect:=True; логическая переменная регистрирует изменение строки
end;end;
if detect = True then
s:=grad(s); если строчку изменили , проверяем не появились ли там еще последовальности
grad:=s; 
end;

var
s:string;
begin
readln(s);
writeln(grad(s));
end.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт