Поиск закономерностей
Часть раздела Основы путешествия по Swift на Coddy — урок 85 из 86.
Задание
ЛегкоПрочитайте две строки ввода: первая строка — это текст для поиска, а вторая строка — это шаблон, который нужно найти.
Подсчитайте, сколько раз шаблон встречается в тексте, включая перекрывающиеся вхождения, и выведите это количество.
Требования:
- Прочитайте текстовую строку из первой строки ввода
- Прочитайте строку шаблона из второй строки ввода
- Пройдите по тексту и проверьте наличие шаблона в каждой позиции
- Подсчитайте все вхождения, включая перекрывающиеся совпадения
- Выведите общее количество в виде одного целого числа
Подсказка: Чтобы извлечь подстроку, начинающуюся с индекса i определенной длины, вы можете использовать срезы строк с индексами. Преобразуйте строку в массив символов или используйте манипуляции с индексами строк в Swift, чтобы проверить, совпадает ли шаблон в каждой позиции.
Пример:
Если входные данные:
ababa
abaВыходные данные должны быть:
2Шаблон "aba" встречается на индексе 0 и индексе 2 в "ababa".
Попробуйте сами
// Чтение входных данных
let text = readLine()!
let pattern = readLine()!
// TODO: Напишите ваш код ниже
// Подсчитайте, сколько раз шаблон встречается в тексте (включая перекрывающиеся вхождения)
// Вывод результата
print(count)Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод