Boyer-Moore 算法。从课程资源中了解好的后缀转换示例

Boyer-Moore algorithm. Understanding good suffix shift example from course resource

来自课程资源的好后缀示例。

苏塞努斯

0 !S = 2

1 !SS = 6

2 !USS = 8

3 !NUSS = 5

8 个。

我的问题是: 为什么 !SS = 6 而不是 = 1,因为 US 在一步匹配 !SS 之后?

!SS的意思是:'SS'是后缀,'xSS'不是(x != 'U').

  • 您的文字以 'xSS' 结尾,您的模式以 'USS'
  • 结尾

图案右移1后:

  • 您的文字以 'SSy' 结尾(y 未知),您的模式再次以 'USS'
  • 结尾

没有 'SSy' 可以匹配 'USS'

的有效 y 值

如果右移 6

  • 您的文字以 'USSabcde' 结尾(a-b 未知),您的模式以 'USSENUSS'
  • 结尾

如果 'abcde' == 'ENUSS'

这可能匹配