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

Ответы 3

  • Было бы не плохо, если бы ваша программа удаляла символы, если их больше 3
    • Автор:

      isaias
    • 5 лет назад
    • 0
  • var s:string; c:char; i:integer;beginwrite('s = '); readln(s);i:=1;while (i+2<=length(s)) do if(s[i]=s[i+1])and(s[i+1]=s[i+2])  then begin        c:=s[i];       while (i<=length(s))and(c=s[i]) do delete(s,i,1);       i:=1;       end  else i:=i+1;writeln(s);end.
    • Автор:

      finn46
    • 5 лет назад
    • 0
  • Рекурсивный подход.(Символы тоже удаляет)function grad(s:string):string;vari:byte;detect:boolean;beginwhile i < length(s) - 2 dobegininc(i);if (s[i] = s[i+1]) and (s[i] = s[i+2]) then {проверка последовательности из 3 елементов}begindelete(s,i,3); {если да - удаляем их}detect:=True; {логическая переменная регистрирует изменение строки}end;end;if detect = True then s:=grad(s); {если строку изменили , проверяем не появились ли там еще последовальности}grad:=s; end;vars:string;beginreadln(s);writeln(grad(s));end.
    • Автор:

      hope93
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years