Поиск закономерностей
Часть раздела Основы путешествия по Swift на Coddy. Урок 85 из 86.
Задание
ЛегкоПрочитай две строки входных данных: первая строка — текст для поиска, а вторая — искомый шаблон.
Посчитай, сколько раз шаблон встречается в тексте, включая перекрывающиеся вхождения, и выведи это количество.
Требования:
- Считай строку текста из первой строки входных данных
- Считай строку шаблона из второй строки входных данных
- Пройдись по тексту и проверь наличие шаблона в каждой позиции
- Посчитай все вхождения, включая перекрывающиеся совпадения
- Выведи общее количество в виде одного целого числа
Подсказка: Чтобы извлечь подстроку, начиная с индекса i и имеющую заданную длину, можно использовать срез строки с индексами. Преобразуй строку в массив символов или используй манипуляции с индексами строк в Swift, чтобы проверить, совпадает ли шаблон в каждой позиции.
Пример:
Если входные данные:
ababa
abaОжидаемый вывод:
2Шаблон "aba" встречается в индексах 0 и 2 в "ababa".
Попробуйте сами
// Считайте входные данные
let text = readLine()!
let pattern = readLine()!
// TODO: Напишите свой код ниже
// Подсчитайте, сколько раз pattern встречается в text (включая пересекающиеся вхождения)
// Выведите результат
print(count)Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: простая математикаОператоры сравнения7Основы ввода-вывода
Функция printИнтерполяция строкВвод с ReadLineПреобразование типовПовторение: до 120Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Swift