此算法的核心:计算出移动的位数。
公式为:移动位数 = 已匹配的字符数 - 对应的部分匹配值
(对应的部分匹配值 = "前缀"和"后缀"的最长的共有元素的长度)
两个概念:"前缀"和"后缀"。 "前缀"指除了最后一个字符以外,一个字符串的全部头部组合;"后缀"指除了第一个字符以外,一个字符串的全部尾部组合。
详见:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html