Top.Mail.Ru
Ответы
Аватар пользователя
11лет
Изменено

Помогите решить в турбо паскале!!!

Задана строка символов. Среди литер этого текста особую роль играет знак #, появление которого означает отмену предыдущей литеры текста; k знаков # отменяют k предыдущих литер (если такие есть) Напечатать строку с учетом роли знака #. Например, строка "VR#Y##HELO#LO" должна быть напечатана в виде: "HELLO".

По дате
По рейтингу
Аватар пользователя
Просветленный
11лет

program q179020117;
var
 i: integer;
 s: string;
begin
 ReadLn(s);
 i := 1;
 if Length(s) <> 0 then
 repeat
  if s[i] = '#' then
  begin
   Delete(s, i, 1);
   if i > 1 then
   begin
    Delete(s, Pred(i), 1);
    Dec(i);
   end;
  end
  else
   Inc(i);
 until i > Length(s);
 WriteLn(s);
 ReadLn;
end.

Аватар пользователя
Мыслитель
11лет

лень написать 5 строчек? я сделал это за тебя

var
s:string;
begin
s:='VR#Y##HELO#LO';
while pos('#',s)<>0 do delete(s,pos('#',s)-1,2);
writeln(s);
end.

Аватар пользователя
Просветленный
11лет

Выход за границы массива если # первая в строке будет.

Аватар пользователя
Оракул
11лет

var
strin:string:='VR#Y##HELO#LO';
strout:string;
i:integer;
begin
for i:=1 to length(strin) do
if strin[i]='#' then
strout:=leftstr(strout,length(strout)-1)
else
strout:=strout+strin[i];
writeln(strout);
end.



Видео по теме