为什么要hash才能KMP
查看原帖
为什么要hash才能KMP
676591
Schrochanshun楼主2025/2/5 17:48
  1. 如果用每一行最小循环节长度lcm每一列最小循环节长度lcm相乘求解,就看看以下数据 AAAABAAAAABAAAAAAABAA \\ AAABAAA
  • 你会发现存在某一个数( 55 )小于当前每一行最小循环节长度构成的lcm( 5×4=205\times 4=20 ),这个数可以作为所有列横向方向上的最小循环节长度,最后答案是5×2=105\times 2=10
  1. 通常情况中的KMP,只是求得一行/一列的字符串的最小循环节长度。为了考虑到所有行/列,把字符串的每一列映射成一个数字,可以保证求得所有列横向方向上的最小循环节长度。同理再去求所有行纵向方向上的最小循环节长度,然后两者相乘得解。
2025/2/5 17:48
加载中...