Алгоритм поиска подстроки в строке с помощью суффиксного массива — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
Рассмотрим такую задачу: у нас есть образец <tex> p </tex>, строка <tex> s </tex>, [[суффиксный массив|суффиксный массив]] <tex> array </tex>, построенный для строки <tex> s </tex>. Необходимо найти все вхождения образца <tex> p </tex> в строку <tex> s </tex>.
 
Рассмотрим такую задачу: у нас есть образец <tex> p </tex>, строка <tex> s </tex>, [[суффиксный массив|суффиксный массив]] <tex> array </tex>, построенный для строки <tex> s </tex>. Необходимо найти все вхождения образца <tex> p </tex> в строку <tex> s </tex>.
  
Для наглядности рассмотрим образец <tex> iss </tex> и строку <tex> mississippi </tex>. Вот суффиксный массив для данной строки:
+
Для наглядности рассмотрим такой пример: образец <tex> iss </tex>, строка <tex> mississippi </tex>. <br>
 +
Вот суффиксный массив для данной строки:
 +
 
 +
{| border="1"
 +
|width="20"|#
 +
|width="150"|суффикс
 +
|width="100"|номер суффикса
 +
|-
 +
|1
 +
|i
 +
|11
 +
|-
 +
|2
 +
|i
 +
|11
 +
|-
 +
|3
 +
|i
 +
|11
 +
|-
 +
|4
 +
|i
 +
|11
 +
|-
 +
|5
 +
|i
 +
|11
 +
|-
 +
|6
 +
|i
 +
|11
 +
|-
 +
|7
 +
|i
 +
|11
 +
|-
 +
|8
 +
|i
 +
|11
 +
|-
 +
|9
 +
|i
 +
|11
 +
|-
 +
|10
 +
|i
 +
|11
 +
|-
 +
|11
 +
|i
 +
|11
 +
|-
 +
|}

Версия 01:14, 8 мая 2011

Рассмотрим такую задачу: у нас есть образец [math] p [/math], строка [math] s [/math], суффиксный массив [math] array [/math], построенный для строки [math] s [/math]. Необходимо найти все вхождения образца [math] p [/math] в строку [math] s [/math].

Для наглядности рассмотрим такой пример: образец [math] iss [/math], строка [math] mississippi [/math].
Вот суффиксный массив для данной строки:

# суффикс номер суффикса
1 i 11
2 i 11
3 i 11
4 i 11
5 i 11
6 i 11
7 i 11
8 i 11
9 i 11
10 i 11
11 i 11