![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.05.2019
Сообщений: 21
|
![]()
Найти число вхождений подстроки в строку. (C++)
В общем случае мы используем алгоритм КМП, однако что делать если паттерн может содержать знак "?", который означает любой символ или его отсутствие? ![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 21.06.2016
Сообщений: 65
|
![]()
Ну а обычный поиск за квадрат по времени не пройдет?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 11.05.2019
Сообщений: 21
|
![]()
Нет.
Ограничение O(n+m+Z) где, n - длина шаблона m - длина текста Z - длина строки между знаками вопроса. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 21.06.2016
Сообщений: 65
|
![]()
Стоп.
Знаки вопрос стоят только в одном месте непрерывно? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 11.05.2019
Сообщений: 21
|
![]()
Исходя из условия задачи, я думаю, что знаки могут быть расположены в произвольном порядке,
например, "abc??ab" или "ab?ab?ac". |
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 21.06.2016
Сообщений: 65
|
![]() Цитата:
Можно его увидеть? Именно адекватное, красивое условие, а не вашу интерпретацию с кмп. Потому что я не понимаю какие строки даны <chars><?><chars> или <chars>?<chars>?<chars> или еще какие-то |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 11.05.2019
Сообщений: 21
|
![]()
Шаблон поиска задан строкой длины m, в которой кроме обычных символов могут встречаться символы “?”.
Найти позиции всех вхождений шаблона в тексте длины n. Каждое вхождение шаблона предполагает, что все обычные символы совпадают с соответствующими из текста, а вместо символа “?” в тексте встречается произвольный символ. Время работы - O(n + m + Z), где Z - общее -число вхождений подстрок шаблона “между вопросиками” в исходном тексте. m ≤ 5000, n ≤ 2000000. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена вхождений строки на строку | Luchfan12 | Общие вопросы по Java, Java SE, Kotlin | 1 | 05.03.2015 15:30 |
поиск символов (подсчёт вхождений подстроки в строку) | Kukurudza | Общие вопросы C/C++ | 2 | 24.09.2011 10:18 |
Определить кол-во вхождений символа в си-строку. | mohita | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 29.11.2010 04:28 |
Найти кол-во вхождений подстроки в строку | Kuzya59 | Общие вопросы Delphi | 4 | 21.09.2009 12:46 |
Функция для определения числа вхождений подстроки в строку | motorway | Microsoft Office Excel | 1 | 15.07.2009 23:28 |