Регистрация
Войти
Стать экспертом Правила
Информатика

Дано слово. Удалить из него все повторяющиеся буквы, например "нн" и "сс".Очень прошуу. Pascal ABC

ОТВЕТЫ
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.


503
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам