码迷,mamicode.com
首页 > 编程语言 > 详细

算法笔记_009:字符串匹配【蛮力法】

时间:2016-12-20 01:05:17      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:system   log   子串   pos   cal   chap   apt   解决方案   osi   

1 问题描述

给定一个n个字符组成的串(称为文本),一个mm <= 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:字符串匹配【蛮力法】

标签:system   log   子串   pos   cal   chap   apt   解决方案   osi   

原文地址:http://www.cnblogs.com/liuzhen1995/p/6200943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!