leetcode-28-匹配字符串位置(KMP)
2017-05-14 21:07
197 查看
首先是前缀暴力匹配算法,竟然也能AC,看来测试设置的时间不是很严格啊。
重点介绍KMP算法。KMP算法是对前缀暴力匹配算法的改进,每次往后不是移动一步,即改进了上面代码中的
接着是后缀暴力匹配算法,和前缀暴力匹配思路一样,只不过是从后往前匹配而已
重重点介绍BM算法。BM算法是对后缀暴力匹配算法的改进,每次往后不是移动一步,即改进了上面代码中的
public int strStr(String haystack, String needle) { for (int i = 0; i <= haystack.length() - needle.length(); i++) { int j; for (j = 0; j < needle.length() && needle.charAt(j) == haystack.charAt(i + j); j++) {} if (j == needle.length()) return i; } return -1; }
重点介绍KMP算法。KMP算法是对前缀暴力匹配算法的改进,每次往后不是移动一步,即改进了上面代码中的
i++这一步。
接着是后缀暴力匹配算法,和前缀暴力匹配思路一样,只不过是从后往前匹配而已
public int strStr(String haystack, String needle) { for (int i = 0; i <= haystack.length() - needle.length(); i++) { int j; for (j = needle.length() - 1; j >= 0 && needle.charAt(j) == haystack.charAt(i + j); j--) {} if (j < 0) return i; } return -1; }
重重点介绍BM算法。BM算法是对后缀暴力匹配算法的改进,每次往后不是移动一步,即改进了上面代码中的
i++这一步。BM算法实际中用的比KMP算法多。
相关文章推荐
- KMP求匹配字符串位置
- leetcode_28. Implement strStr() 字符串模式匹配,返回匹配的首字符位置
- [LeetCode]—Implement strStr() 寻找子串匹配第一个位置 (KMP)
- 【LeetCode 28_字符串_匹配】Implement strStr()
- POJ3461 字符串之模式匹配,kmp,求目标串中有多少个位置可重叠的子串
- 【KMP求字符串第一个匹配位置】hdu 1711
- Leetcode28:Implement strStr()从一个字符串中查找给定字符串的位置
- KMP字符串模式匹配详解
- KMP字符串模式匹配的C实现
- 字符串普通模式匹配和KMP模式匹配[面相对象喽]
- KMP字符串模式匹配算法
- KMP字符串模式匹配详解
- KMP字符串模式匹配详解
- KMP字符串模式匹配详解
- KMP字符串模式匹配详解
- KMP字符串模式匹配详解
- 字符串模式匹配之一-------BM & KMP
- 字符串的模式匹配算法 KMP
- KMP字符串模式匹配详解
- KMP字符串模式匹配详解