第一趟
posT | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
目标 | a | c | a | b | a | a | b | a | a | b | c | a | c | a | a | b | c |
O | X | ||||||||||||||||
模式 | a | b | a | a | b | c | a | c | |||||||||
next(j) | -1 | 0 | 0 | 1 | 1 | 2 | 0 | 1 | |||||||||
posP | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
第一趟在posT=1,posP=1的地方失败,因为next[posP]=next[1]==0!=-1,所以下一趟posT不变,posP=next[posP]=0。
第二趟
posT | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
目标 | a | c | a | b | a | a | b | a | a | b | c | a | c | a | a | b | c |
X | |||||||||||||||||
模式 | a | b | a | a | b | c | a | c | |||||||||
next(j) | -1 | 0 | 0 | 1 | 1 | 2 | 0 | 1 | |||||||||
posP | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
第二趟在posT=1,posP=0的地方失败,因为next[posP]=next[0]==-1,所以下一趟posT++,posP=0。
第三趟
posT | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
目标 | a | c | a | b | a | a | b | a | a | b | c | a | c | a | a | b | c |
O | O | O | O | O | X | ||||||||||||
模式 | a | b | a | a | b | c | a | c | |||||||||
next(j) | -1 | 0 | 0 | 1 | 1 | 2 | 0 | 1 | |||||||||
posP | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
第三趟在posT=7,posP=5的地方失败,因为next[posP]=next[5]==2!=-1,所以下一趟posT不变,posP=next[posP]=2。
第四趟
posT | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
目标 | a | c | a | b | a | a | b | a | a | b | c | a | c | a | a | b | c |
O | O | O | O | O | O | ||||||||||||
模式 | a | b | a | a | b | c | a | c | |||||||||
next(j) | -1 | 0 | 0 | 1 | 1 | 2 | 0 | 1 | |||||||||
posP | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
第四趟在posT=12,posP=7的地方成功。