Блог пользователя innok96

Автор innok96, история, 9 лет назад, По-русски

Подскажите пожалуйста, как в суффиксном автомате, имея номер состояния, восстановить строку, соответствующую данному состоянию.

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Одному состоянию могут соответствовать несколько строк

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    наибольшую по длине, разумеется.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Можно запустить ДПшку: наиболее длинный путь из состояния S в начальное состояние по обратным ребрам и сохранить переходы ДПшки. maxLen[S], pred[S].

      После этого когда есть номер состояния, то можно просто пропрыгать по pred[S].

»
9 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

В построении автомата можно запомнить позицию правого конца каждого состояния.