24.02.2024

Как найти слова с цифрами. Программа на языке Паскаль, Python (применение множеств)

 Задача. С клавиатуры вводится строка слов, разделенных пробелами. Найти слова, содержащие цифры.

Разберем следующие способы решения:

  1. подсчитаем количество символов-цифр в слове ("в лоб", пройдя вдоль слова циклом),
  2. найдем длину множества, равного пересечению множества символов слова и множества символов-цифр.

Способ 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

Читать

Комментариев нет:

Отправить комментарий