本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(2)

数据结构笔记_47 暴力匹配算法

发布于2021-03-13 13:47     阅读(1409)     评论(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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)