Собственно, вопрос такой: можно ли решать эту задачу пропусканием второй строки по дереву первой? Убил весь вечер, переписал кучу квадратоподобных вариантов, но они даже не были верными.
P.S.: Как делать это, строя дерево для сконкатенированной строки, знаю.
Мое решение: http://pastebin.com/U5ZJVV6F
P.S. Когда наконец поправят отправку комментариев из chrome?В исходном тексте Укконена в процедуре test-and-split(s, (k, p), t) есть такие строчки:
let g'(s, (k', p')) = s' be the t_k-transition from s;
if t = t_{k' + p - k + 1} then return(true, s)
Мне не понятен смысл состояния s' и индексов k', p'. Что они означают?