add KMP by ruanyifeng.com