Вопрос по информатике:
Дана строка содержащая любые символы кроме русских букв.
Под "словом" будем понимать последовательность символов, ограниченную пробелами или стоящую в конце или начале строки. Между словами может быть несколько пробелов. Так же пробелы могут быть в конце или начале строки.
Написать процедуру, которая удалит из строки слова в которых есть цифры и при этом сохранит все пробелы.
Например строка: "ufd uue8dx 888 dmas 9" будет преобразована в строку: "ufd dmas "
Использовать заголовок:
procedure Preobraz(var Stroka: string);
- 09.11.2015 07:16
- Информатика
- remove_red_eye 5932
- thumb_up 36
Ответы и объяснения 1
Внимание! Если программа не работает, обновите версию!
procedure Preobraz(var Stroka:string);
begin
var bq:=new Queue;
foreach var m in Stroka.Matches('\s+') do
bq.Enqueue((m.Index,m.Length));
var wq:=new Queue;
foreach var m in Stroka.Matches('\S+') do
if m.Value.Any(t->t in ['0'..'9']) then wq.Enqueue((m.Index,''))
else wq.Enqueue((m.Index,m.Value));
Stroka:='';
var pbi,pwi:integer;
while (bq.Count>0) and (wq.Count>0) do begin
(pbi,pwi):=(bq.Peek[0],wq.Peek[0]);
if pbi
bq.Dequeue
end
else begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
while bq.Count>0 do begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end;
while wq.Count>0 do begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
begin
var s:=ReadlnString;
Preobraz(s);
s:=''; // чтобы было видно, как работает
s.Println
end.
- 01.01.1970 00:00
- thumb_up 19
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.