Дана строка содержащая любые знаки кроме российских букв.Под "словом" будем разуметь
Дана строка содержащая любые знаки кроме русских букв.
Под "словом" будем разуметь последовательность символов, ограниченную пробелами или стоящую в конце либо начале строки. Между словами может быть несколько пробелов. Так же пробелы могут быть в конце или начале строчки.
Написать функцию, которая удалит из строки слова в которых есть числа и при этом сохранит все пробелы.
К примеру строчка: "ufd uue8dx 888 dmas 9" будет преобразована в строчку: "ufd dmas "
Использовать заголовок:
procedure Preobraz(var Stroka: string);
Konychev Kolka
там есть пробелы, просто скопировалось ошибочно
Валерка
нет, просто из д/з
Евгения Слвботская
углубленка
1 ответ
Толыпин
Игорь
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018
Внимание! Если программка не работает, обновите версию!
procedure Preobraz(var Stroka:string);
begin
var bq:=new Queuelt;(integer,integer)gt;;
foreach var m in Stroka.Matches('\s+') do
bq.Enqueue((m.Index,m.Length));
var wq:=new Queuelt;(integer,string)gt;;
foreach var m in Stroka.Matches('\S+') do
if m.Value.Any(t-gt;t in ['0'..'9']) then wq.Enqueue((m.Index,''))
else wq.Enqueue((m.Index,m.Value));
Stroka:='';
var pbi,pwi:integer;
while (bq.Countgt;0) and (wq.Countgt;0) do begin
(pbi,pwi):=(bq.Peek[0],wq.Peek[0]);
if pbilt;pwi then begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end
else begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
while bq.Countgt;0 do begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end;
while wq.Countgt;0 do begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
begin
var s:=ReadlnString;
Preobraz(s);
s:='lt;'+s+'gt;'; // чтоб было видно, как работает
s.Println
end.
Внимание! Если программка не работает, обновите версию!
procedure Preobraz(var Stroka:string);
begin
var bq:=new Queuelt;(integer,integer)gt;;
foreach var m in Stroka.Matches('\s+') do
bq.Enqueue((m.Index,m.Length));
var wq:=new Queuelt;(integer,string)gt;;
foreach var m in Stroka.Matches('\S+') do
if m.Value.Any(t-gt;t in ['0'..'9']) then wq.Enqueue((m.Index,''))
else wq.Enqueue((m.Index,m.Value));
Stroka:='';
var pbi,pwi:integer;
while (bq.Countgt;0) and (wq.Countgt;0) do begin
(pbi,pwi):=(bq.Peek[0],wq.Peek[0]);
if pbilt;pwi then begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end
else begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
while bq.Countgt;0 do begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end;
while wq.Countgt;0 do begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
begin
var s:=ReadlnString;
Preobraz(s);
s:='lt;'+s+'gt;'; // чтоб было видно, как работает
s.Println
end.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Облако тегов