Учеба и наука
Рядковые величины - вопрос №139433
Подсчитать в тексте количество букв A и В, если А>B то все А с текста удалить, если В>A, то все В удалить!
Дополнение автора от ноябрь 7, 2011 г., 23:45:27
Текст-любое предложение
Криони Евгений Сергеевич ноябрь 7, 2011 г.
-
Всего ответов: 2
-
нужен алгоритм или реализация на конкретном языке?
-
Решение задачи на Pascal
program bukva;
var s:string; /в этой переменной будет содержаться весь текст/
k,l,i:integer; / i -это индекс, k и l будут хранить количество проверяемых букв/
begin
readln(s);k=0;l=0; /Вводим исходный текст/
for i:=1 to length(s) do
begin
if s[i]='A' then k:=k+1; /подсчитываем поличество букв A в исходном тексте/
if s[i]='B' then l:=l+1 /подсчитываем поличество букв В в исходном тексте/ end; if k>l then /Здесь проиходит сравнение количества букв, если условие выполнится..../
begin for i:=1 to lenggth(s) do /то проходя всю строку.../
if s[i]='A' then /находим все символы А.../
begin delete(s,i,1); /и удаляем их по одному, но при этом, если вдруг в тексте есть сдвоенные буквы АА, то вторая перейдет на место удаленной, а так как эта позиция уже проверена то программа ничего не удалит и сразу перейдет к следующей позиции, поэтому нужно эту пизици проверить еще раз/
i:=i-1;
end;
end;
if l>k then /все то же самое но для символа В/
begin for i:=1 to lenggth(s) do
if s[i]='B' then
begin
delete(s,i,1);
i:=i-1;
end;
end;
write(s); выводим очищенный текст
end.
/В условии задачи не оговаривается ситуация когда А=В, поэтому мы ничего про нее не пишем/