Var s,c:string; i,k,j,m:integer; begin readln(s); k:=0; m:=length(s); i:=0; while i<>m do begin; inc(i); for j:=i to m do if s[i]=s[j] then inc(k); if k=3 then begin; c:=s[i]; while pos(c,s)<>0 do delete(s,pos(c,s),1); end; k:=0; m:=length(s); end; writeln(s); end.
Gleb1Kosyrev
m - длина строки, она меняется в процессе выполнения цикла, чтобы не было выхода за границы. j- счётчик для цикла, в котором считается количество совпадений символов.
Pussygirl
она должна только 3 qqq убрать, а убирает все
Gleb1Kosyrev
Var s,c:string; i,k,j,m:integer; begin readln(s); k:=0; m:=length(s); i:=0; while i<>m do begin; inc(i); for j:=i to m do if s[i]=s[j] then inc(k); if k=3 then begin; c:=s[i]; i:=0; for j:=1 to 3 do delete(s,pos(c,s),1); end; k:=0; m:=length(s); end; writeln(s); end.
Gleb1Kosyrev
Не учёл, что их может быть больше, извиняюсь.
Pussygirl
Спасибо большое, я была близка к решению, но все безрезультатно... я б в жизни не додумалась бы так решить)
Answers & Comments
Verified answer
//Pascal ABC.NET v3.1 сборка 1172Var
s,c:string;
i,k,j,m:integer;
begin
readln(s);
k:=0;
m:=length(s);
i:=0;
while i<>m do
begin;
inc(i);
for j:=i to m do
if s[i]=s[j] then inc(k);
if k=3 then
begin;
c:=s[i];
while pos(c,s)<>0 do
delete(s,pos(c,s),1);
end;
k:=0;
m:=length(s);
end;
writeln(s);
end.
Пример ввода:
Панамка
Пример вывода:
Пнмк
s,c:string;
i,k,j,m:integer;
begin
readln(s);
k:=0;
m:=length(s);
i:=0;
while i<>m do
begin;
inc(i);
for j:=i to m do
if s[i]=s[j] then inc(k);
if k=3 then
begin;
c:=s[i];
i:=0;
for j:=1 to 3 do
delete(s,pos(c,s),1);
end;
k:=0;
m:=length(s);
end;
writeln(s);
end.