Дана строка содержащая любые знаки кроме российских букв.Под "словом" будем разуметь

Дана строка содержащая любые знаки кроме русских букв.

Под "словом" будем разуметь последовательность символов, ограниченную пробелами или стоящую в конце либо начале строки. Между словами может быть несколько пробелов. Так же пробелы могут быть в конце или начале строчки.

Написать функцию, которая удалит из строки слова в которых есть числа и при этом сохранит все пробелы.

К примеру строчка: "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.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт