Предмет: Информатика,
автор: Gabella1
Дано слово. Удалить из него все повторяющиеся буквы, например "нн" и "сс".
Очень прошуу. Pascal ABC
Ответы
Автор ответа:
0
var s,st: string;
a: array[1..255] of integer;
i: integer;
begin
write('строка: '); readln(s);
for i:=1 to 255 do a[i]:=0;
for i:=1 to length(s) do inc(a[ord(s[i])]);
st:='';
for i:=1 to length(s) do
if ((a[ord(s[i])]>=2) and
(s[i] in ['а'..'я'])) then continue
else st:=st+s[i];
writeln('новая строка: ',st);
end.
строка: Это строка для проверки.
новая строка: Э са для пвеи.
Если нужно, чтобы не различались прописные и строчные буквы, то другой вариант программы:
var s: string;
a: array[1..255] of integer;
i,j: integer;
begin
write('строка: '); readln(s);
for i:=1 to 255 do a[i]:=0;
for i:=1 to length(s) do
if ord(s[i])>32 then
begin
inc(a[ord(s[i])]);
if s[i] in ['а'..'я'] then inc(a[ord(UpperCase(s[i]))])
else if s[i] in ['А'..'Я'] then inc(a[ord(LowerCase(s[i]))]);
end;
j:=0;
for i:=1 to length(s) do
if (a[ord(s[i])]>=2) then continue
else
begin
inc(j);
s[j]:=s[i];
end;
delete(s,j+1,length(s)-j);
writeln('новая строка: ',s);
end.
a: array[1..255] of integer;
i: integer;
begin
write('строка: '); readln(s);
for i:=1 to 255 do a[i]:=0;
for i:=1 to length(s) do inc(a[ord(s[i])]);
st:='';
for i:=1 to length(s) do
if ((a[ord(s[i])]>=2) and
(s[i] in ['а'..'я'])) then continue
else st:=st+s[i];
writeln('новая строка: ',st);
end.
строка: Это строка для проверки.
новая строка: Э са для пвеи.
Если нужно, чтобы не различались прописные и строчные буквы, то другой вариант программы:
var s: string;
a: array[1..255] of integer;
i,j: integer;
begin
write('строка: '); readln(s);
for i:=1 to 255 do a[i]:=0;
for i:=1 to length(s) do
if ord(s[i])>32 then
begin
inc(a[ord(s[i])]);
if s[i] in ['а'..'я'] then inc(a[ord(UpperCase(s[i]))])
else if s[i] in ['А'..'Я'] then inc(a[ord(LowerCase(s[i]))]);
end;
j:=0;
for i:=1 to length(s) do
if (a[ord(s[i])]>=2) then continue
else
begin
inc(j);
s[j]:=s[i];
end;
delete(s,j+1,length(s)-j);
writeln('новая строка: ',s);
end.
Автор ответа:
0
Этот вариант правильный, но там дано только одно слово и нужно из него убрать повторяющиеся буквы. Например: "Ссора", в итоге получается "ора"
Автор ответа:
0
Для одного слова программа короче. var s: string;
a: array[1..255] of integer;
i,k: integer;
begin
readln(s);
for i:=1 to length(s) do
inc(a[ord(UpperCase(s[i]))]);
k:=0;
for i:=1 to length(s) do
begin
if a[ord(UpperCase(s[i]))]<2 then
begin
inc(k); s[k]:=s[i];
end;
end;
delete(s,k+1,length(s)-k);
writeln(s);
end.
a: array[1..255] of integer;
i,k: integer;
begin
readln(s);
for i:=1 to length(s) do
inc(a[ord(UpperCase(s[i]))]);
k:=0;
for i:=1 to length(s) do
begin
if a[ord(UpperCase(s[i]))]<2 then
begin
inc(k); s[k]:=s[i];
end;
end;
delete(s,k+1,length(s)-k);
writeln(s);
end.
Похожие вопросы
Предмет: Биология,
автор: andrijcukdaniella
Предмет: Қазақ тiлi,
автор: Аноним
Предмет: Химия,
автор: illacernak4
Предмет: География,
автор: idubrovin
Предмет: Математика,
автор: TupoyBrat