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'
这可能匹配
来自课程资源的好后缀示例。
苏塞努斯
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'
这可能匹配