Задача. С клавиатуры вводится строка слов, разделенных пробелами. Найти слова, содержащие цифры.
Разберем следующие способы решения:
- подсчитаем количество символов-цифр в слове ("в лоб", пройдя вдоль слова циклом),
- найдем длину множества, равного пересечению множества символов слова и множества символов-цифр.
Способ 1
- Введем строку
- Получим список слов, разделив строку по пробелу методом split()
- Пройдем циклом по списку слов
- подсчитаем количество символов-цифр методом countof()
- если количество символов-цифр больше 0, выведем слово
Программа решения задачи на языке Паскаль
var s:string;
begin
readln(s);
var a:=s.Split();
foreach var d in a do
begin
var t:=d.countof('0') + d.countof('1') + d.countof('2') + d.countof('3') + d.countof('4') + d.countof('5') + d.countof('6') + d.countof('7') + d.countof('8') + d.countof('9');
if t>0 then println(d);
end;
end.
Результат запуска программы
Способ 2
В отличие от предыдущего кода, пройдем по слову циклом и будем проверять, является ли символ слова цифрой (применим проверку за счет принадлежности множеству цифр), если да, то будем копить счетчик. Если после обработки слова счетчик цифр больше 0, то выведем слово.
Программа решения задачи на языке Паскаль
var s:string;
begin
readln(s);
var a:=s.Split();
foreach var d in a do
begin
var t:=0;
foreach var h in d do
begin
if h in ['0'..'9'] then t+=1;
end;
if t>0 then println(d);
end;
end.
Способ 3
Для каждого слова получим множество его символов. Найдем пересечение полученного множества и множества символов-цифр, если длина множества больше 0, значит в слове были цифры, выведем слово.
Программа решения задачи на языке Паскаль
var s:string;
begin
readln(s);
var a:=s.Split();
foreach var d in a do
begin
var m: set of char;
m:=[];
foreach var h in d do include(m,h);
m:=m * ['0'..'9'];
if m.count>0 then println(d);
end;
end.
Покажем решение данной задачи на языке Python
Преобразуем слово к множеству и найдем пересечение с множеством цифр (операция &), если длина полученного множества больше 0, выведем слово.
Программа решения задачи на языке Python
s = input()
a = s.split()
for d in a:
m = set(d) & set('0123456789')
if len(m)>0:
print(d)
Как получить все возможные подстроки из заданной строки на Питоне (Python) Читать |
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 0 до 9 включительно. Определите максимальное количество идущих подряд символов, которые могут представлять запись числа в шестнадцатеричной системе счисления. Читать |
Последовательность максимальной длины, которая содержит буквы строго в алфавитном порядке, т.е. ABCD. ЕГЭ по информатике. Задание № 24. Решение на языке Python Читать |
Комментариев нет:
Отправить комментарий