字符串匹配之BF算法

来源:互联网 发布:淘宝客鹊桥pid是什么 编辑:程序博客网 时间:2024/05/16 12:17
package csu.ds;/** * BF算法是普通的模式匹配算法,又称暴力算法,性能和效率很低 * 基本思想:目标串T的第一个字符与模板串M的第一个字符相比较,如果相同,继续比较T的第二个字符和M的第二个字符 * ,若不相同,将T的第一个字符和M的第二个字符相比较,以此类推 *  * @author Ricky *  */public class BruteForce {/** * @param str *            模板串 * @param subStr *            子串 * @return 字符串匹配成功的起始位置 */public static int MatchIndex(String str, String subStr) {int index = 0;int i = 0, j = 0;while (i < str.length() && j < subStr.length()) {if (str.charAt(i) == subStr.charAt(j)) {i++;j++;} else { // 匹配失败时i = i - j + 1; // ,i回退到首次匹配成功的下一位继续匹配j = 0; // j回退到子串首位}}if (j == subStr.length()) {return index = i - j;}return -1;}public static void main(String[] args) {System.out.println(MatchIndex("abcdbc", "bc"));System.out.println("abcdbc".indexOf("bc"));}}// 输出结果: 1//           1

0 0
原创粉丝点击