TGViewer
Data Science: Алгоритмы и Структуры данных Data Science: Алгоритмы и Структуры данных @structuredata · 7.64K subscribers
Post #4862 439
Для чего и как построить Z-массив

Идея состоит в том: чтобы объеденить темплейт и текст и создать единую строку, а после для нее построить Z-array. Если что, на все это нам понадобиться не больше чем линейное время. А вот для построения самого Z-array нам уже понадобиться квадратичная функция.

Для построения нам придется поддерживать определенный интервал L,R, который по факту и содержит необходимую подстроку. Шаги следующие:

1.Если i-шаг> R, то нет префиксной подстроки, которая начинается перед i и заканчивается после i. Поэтому сбрасываются L и R и вычисляются новые

2. Если i <= R, то K = i - L, и тем самым Zi >= min(ZK, R-i + 1)

Появляются 2 случая тогда:

1. Если ZK < R-i + 1 то нет префиксной подстроки и интервал остается прежним

2. Если наоборот больше: то можно расширить интервал

Data Science: Алгоритмы и Структуры данных | Чат 💬
More from @structuredata
  1. Oct 13, 2026Как разобраться в Computer Science Computer Science — программирование, математика и всё,…
  2. Oct 13, 2026​Принципы работы различных видов очередей Недавно мы разбирали простую очередь как структу…
  3. Oct 12, 2026Двоичное (бинарное) дерево поиска Структуры данных «деревья» широко распространены в прогр…
  4. Oct 12, 2026​Оценка сложности алгоритма проще, чем кажется Если вы изучали различные алгоритмы (наприм…
  5. Oct 11, 2026Создание и обход двоичного дерева, а также реализация на JavaScript Двоичное дерево состои…
  6. Oct 11, 2026​​Хотите освоить визуализацию данных на реальных задачах — попробуйте бесплатный курс-симу…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →