发布于2021-03-13 13:47 阅读(1383) 评论(0) 点赞(6) 收藏(3)
先看一个暴力匹配法:
2)的注释:i = i - (j-1),即从i 之前 匹配成功位置 的 下一个位置 开始匹配。
暴力匹配示意图:
暴力匹配算法虽然比较笨,但也不失为字符串匹配问题的一种解决方案。
可以拿来跟后面的KMP算法作比较。
代码+输出:
package com.huey.kmp;
public class ViolenceMatch {
public static void main(String[] args) {
// 测试暴力匹配
String str1 = "烦恼不寻人 寻人 人 人自寻烦恼 烦恼 恼";
String str2 = "人自寻烦恼";
int index = violenceMatch(str1, str2);
System.out.println("index = " + index);
}
// 暴力匹配算法实现
public static int violenceMatch(String str1, String str2) {
char[] s1 = str1.toCharArray();
char[] s2 = str2.toCharArray();
int s1Len = s1.length;
int s2Len = s2.length;
int i = 0;// i 索引指向s1
int j = 0;// j 索引指向s2
while (i < s1Len && j < s2Len) {// 保证匹配时不越界
if (s1[i] == s2[j]) {// 匹配成功
i++;
j++;
} else {
i = i - (j - 1);
j = 0;
}
}
// 判断是否匹配成功
if (j == s2Len) {
return i - j;
} else {
return -1;
}
}
}
原文链接:https://blog.csdn.net/qq_45909299/article/details/114660342
作者:Hdhhd
链接:http://www.javaheidong.com/blog/article/114381/cc403f2884e41bf5b714/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!