Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.

Сообщение Anonymous »

Почему алгоритм KMP (Кнута-Морриса-Пратта) использует length = prefixTable[length - 1] вместо просто length = length - 1 в следующем коде? Я в замешательстве, потому что изначально думал, что оба задания дадут одинаковый результат. Я понимаю, что ошибаюсь, но не знаю, где я ошибся. Может ли кто-нибудь объяснить эту разницу на примерах?
private int[] buildPrefixTable(String s) {
int[] prefixTable = new int[s.length()];
int length = 0;
for (int i = 1; i < s.length(); i++) {
while (length > 0 && s.charAt(i) != s.charAt(length)) {
length = prefixTable[length - 1];
}
if (s.charAt(i) == s.charAt(length)) {
length++;
}
prefixTable = length;
}
return prefixTable;
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ength-1-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.
    Anonymous » » в форуме JAVA
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Разъяснение по поводу `length = prefixTable[length - 1]` и `length = length - 1` в алгоритме KMP.
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Есть ли какое-либо преимущество у int i = array.length перед двойным вызовом array.length?
    Anonymous » » в форуме JAVA
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Различное поведение с this.length и arr.length в JavaScript
    Anonymous » » в форуме Javascript
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Динамическое соединение (определение и разъяснение)
    Гость » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость

Вернуться в «JAVA»