Поиск закономерностей
Часть раздела Основы путешествия по R на Coddy — урок 77 из 78.
Задание
ЛегкоСоздайте функцию с названием count_pattern, которая принимает два аргумента: text и pattern. Функция должна возвращать количество вхождений шаблона в текст, включая перекрывающиеся вхождения.
Вы получите две строки входных данных:
- Строка текста, в которой нужно выполнить поиск
- Строка шаблона, которую нужно найти
Вызовите свою функцию с предоставленными входными данными и выведите результат.
Подсказки:
- Используйте
nchar()для получения длины строк - Используйте
substr(text, start, stop)для извлечения подстрок - Пройдите по каждой допустимой начальной позиции и проверьте, совпадает ли подстрока с шаблоном
Например, если входные данные:
ababa
abaВыходные данные должны быть:
2Объяснение: Шаблон "aba" появляется в позиции 1 (ababa) и в позиции 3 (ababa), поэтому результат равен 2.
Если входные данные:
mississippi
issiВыходные данные должны быть:
2Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Создайте функцию с именем count_pattern, которая принимает text и pattern
# и возвращает количество перекрывающихся вхождений pattern в text
# Вызов функции и вывод результата
print(count_pattern(text, pattern))Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками