首页 > 代码库 > 算法笔记_009:字符串匹配【蛮力法】
算法笔记_009:字符串匹配【蛮力法】
1 问题描述
给定一个n个字符组成的串(称为文本),一个m(m <= n)的串(称为模式),从文本中寻找匹配模式的子串。
2 解决方案
2.1 具体编码
package com.liuzhen.chapterThree; public class BruteForceStringMatch { //根据文本串N,和模式串M,返回第一个匹配模式串的子串在N中的位置 public static int getStringMatch(int[] N , int[] M){ int n = N.length; //文本串的长度 int m = M.length; //模式串的长度 for(int i = 0;i < n-m;i++){ //最后一轮子串匹配的起始位置是n-m,如果大于n-m一定不会出现匹配子串 int j = 0; while(j < m && M[j] == N[i+j]) j = j +1; if(j == m) return i; } return -1; } public static void main(String args[]){ int[] N = {1,2,3,2,4,5,6,7,8,9}; int[] M = {6,7,8}; int position = getStringMatch(N,M); System.out.println("文本串N中第"+position+"位开始,可以寻找一个匹配模式M的子串,该位置字符值为:"+N[position]); } }
2.2 运行结果
文本串N中第6位开始,可以寻找一个匹配模式M的子串,该位置字符值为:6
算法笔记_009:字符串匹配【蛮力法】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。