字符串匹配(java实现)

    xiaoxiao2022-06-30  179

    字符串操作通常称为模式匹配,是各种串处理系统中最重要的操作之一。本文主要介绍两种常用的实现算法:

    暴力匹配 KMP算法

    1.暴力匹配

            时间复杂度为O(n*m):n为主串长度,m为模式串长度;

            算法的基本思想:从主串的起始位置(或指定位置)开始与模式串的第一个字符比较,若相等,则继续逐个比较后续字符;否则从主串的下一个字符再重新和模式串的字符比较。以此类推,直到模式串匹配成功,返回主串中第一次出现模式串字符的位置,或者模式串匹配不成功,这里约定返回-1;

    //伪代码 int bruteForceStringMatch(String source, String pattern) { i = 0; j = 0; while(i < slen && j < plen) { if(s[i] == p[j]) i; j; else i = i - (j -1); //回溯上次匹配起始位置的后一位 j = 0; } if(j == plen) return i - j; //匹配成功 else return -1; //匹配失败 }

    实现代码:

    public static int bruteFo

    最新回复(0)