Отфильтровать из строки числа

Задача

Вводится строка, содержащая буквы, целые неотрицательные числа и иные символы. Требуется все числа, которые встречаются в строке, поместить в отдельный целочисленный массив. Например, если дана строка "data 48 call 9 read13 blank0a", то в массиве должны оказаться числа 48, 9, 13 и 0.

Пояснение к задаче и алгоритм решения

Если очередной символ строки оказывается цифрой (принадлежит диапазону от '0' до '9'), то его надо добавить в отдельную изначально пустую строку. Проверяя последующие после него символы на принадлежность тому же диапазону, добавлять их в конец той же строки. Это следует делать до тех пор, пока очередной символ окажется не цифрой. В этом случае надо сформированную до этого строку из цифр преобразовать в число и добавить в целочисленный массив. Саму же строку "очистить", т.е. присвоить пустую строку.

Исходный код на языке программирования Pascal

var
    int: array[1..10] of integer;
    i, j: integer;
    strinput, str: string;
    a: char;
    n: byte;
 
begin
    i := 1;
    j := 1;
    readln(strinput);
    n := length(strinput);
    while i <= n do begin
        str := '';
        a := strinput[i];
        while (a >= '0') and (a <= '9') do begin
            str := str + a;
            i := i + 1;
            a := strinput[i]
        end;
        i := i + 1;
        if str <> '' then begin
            val(str,int[j]);
            j := j + 1;
 
        end;
    end;
 
    for i := 1 to j - 1 do
        writeln(int[i]);
end.

Пример(ы) выполнения программы на языке Pascal

ab 56df ;s9 0 k
56
9
0

Исходный код на языке программирования Python

s = input()
l = len(s)
integ = []
i = 0
while i < l:
    s_int = ''
    a = s[i]
    while '0' <= a <= '9':
        s_int += a
        i += 1
        if i < l:
            a = s[i]
        else:
            break
    i += 1
    if s_int != '':
        integ.append(int(s_int))
 
print(integ)

Пример(ы) выполнения программы на языке Python

3 432 kdj3
[3, 432, 3]

Тема

Строки

Уровень сложности

Сложный

Дата публикации

Комментарий