@daniel1

Как наиболее эффективно проверить вхождение последовательности в массиве?

Здравствуйте. У меня есть задача - найти последовательность в массиве. Допустим есть массив a={x,y,z,...} и массив b={x,y}. Необходимо проверить, содержится ли массив b в a. Какой алгоритм будет здесь наиболее эффективный и каково его время работы? Решение желательно на C++\C#. Заранее спасибо
  • Вопрос задан
  • 2592 просмотра
Пригласить эксперта
Ответы на вопрос 3
@mamkaololosha
самое простое это кнут-морисс-пратт
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если надо проверить именно на непрерывную последовательность - то это поиск подстроки на алфавите x,y,z,...
Ответ написан
Комментировать
donkaban
@donkaban
Умею рисовать тени
Самое простое, "interview-ready" и просто правильное - использовать стандартную библиотеку.
std::includes(a.begin(), a.end(), b.begin(), b.end())

en.cppreference.com/w/cpp/algorithm/includes

P.S. Да и вообще, почитать en.cppreference.com/w/cpp/algorithm, там масса занимательного :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы