317
правок
Изменения
→Псевдокод
==Псевдокод==
'''int''' findFirst('''char'''[] y, '''int''' fromIndex, '''int''' toIndex, '''char''' symbol)
'''for''' (i = fromIndex .. toIndex)
'''return''' i
'''return''' -1
Проверка, что все символы в <tex>y</tex> с позиции <tex>fromIndex</tex> и до <tex>toIndex</tex> и <tex>x</tex> с начала и до конца совпадают.
'''boolean''' restEquals('''char'''[] y, '''int''' fromIndex, '''char'''[] x, '''int''' toIndex)
'''for''' (i = fromIndex .. toIndex)
'''if''' (y[i] != x[i - fromIndex + 1])
'''return''' false
'''return''' true
'''print'''(<font color=green>"No matches"</font>)
'''return'''
<font color=green>//Вычисление массива плохих сиволов и объявление первого, последнего и среднего сиволов</font>
bmBc = preBmBc (x, m)
firstCh = x[0];
'''while''' (j <= n - m)
c = y[j + m - 1]
'''if''' (lastCh == c && middleCh == y[j + m / 2] && firstCh == y[j] && <font color=green>//Совпадение шаблона и окна из текста</font>
restEquals(y, j + 1, x, j + m - 2))
'''print'''(j)