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

Вводится строка, содержащая буквы, целые неотрицательные числа и иные символы. Требуется все числа, которые встречаются в строке, поместить в отдельный целочисленный массив. Например, если дана строка «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.



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)



3 432 kdj3
[3, 432, 3]

Оцените статью
Добавить комментарий