@12rbah

Есть ли быстрый алгоритм поиска подстроки с пропусками в строке?

Возможно некорректно задал вопрос, суть такая, что есть сигнатура 0xFF 0xDD ?? ?? 0xFF, где знаки вопроса там могут быть любые символы, ищется сигнатура в большом файле и если три этих символа встречаются в любой подстроке из 5 символов, единственное что пришло в голову, находить сигнатуру 0xFF 0xDD сохранять 5 байт(строку) в массив и потом еще раз отдельно пробегаться по этому массиву и проверять на наличие этих символов.
Просто подумал мб есть стандартный алгоритм для этого.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Есть стандартный механизм. Называется «регулярные выражения».

Впрочем в этом конкретном случае непонятно зачем нужно что-то сохранять в отдельный массив. Нужно просто найти 0xFF 0xDD сдвинуться на три байта вправо и проверить, что там 0xFF. Примерно так (псевдокод):
for(int i = 0; i < data.size - 4; i++) {
  if (data[i] == 0xFF && data[i+1] == 0xDD && data[i+4] == 0xFF) {
    // нашёл
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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