kmp匹配

主串与模式串匹配,关键在于主串不回溯,模式串进行特殊编码,对比与bf算法的异同

s="ababcabcabcacbab"
t="abcac"

#s="hasdefregrtshgtrhrthrth"
#t="hrthry"
#t="abcaababc"

slen=len(s)
tlen=len(t)

next=[0]*len(t)

def KMP():
    i = 0
    j = 0
    o=0
    while i < slen and j < tlen:
        o+=1
        #将next数组的首位设为-1
        if s[i] == t[j] or j==-1:
            i += 1
            j += 1
        #i,j对应字段不相等
        else:
           #获取编码
            j = next[j]
    print("O(x)=",o)
    if j >= tlen:
        return i - tlen
    else:
        return 0


"""
将模式串从头至尾与模式串从头至尾进行比较,对模式串进行编码
next函数关键
重点是
1.两个字段相等,i与j都增加
2.两个字段不等i==0,j增加
3.两个字段不等i!=0,i=0,不能错过j对应的字段与首位的比较
"""
#求next数组值
def getNext():
    i=0
    j=1
    #
    next[0]=-1
    while j<len(t):
        #print("j=",j)
        #print("i=", i)
        #print(next)
        #判断是否相等,相等就都增加
        if t[i]==t[j]:
            #给过值,不在给值
            if next[j]==0:
                next[j] = i
            i+=1
            j+=1
        #不相等,并且i等于0,
        elif i==0:
            if next[j] == 0:
                next[j] = i
            j += 1
        #不相等,并且i不等于0,将i设为0,j不变,判断后面的字符是否与
        elif i!=0:
            if next[j] == 0:
                next[j] = i
            i=0
    print(next)

getNext()
print(KMP())
基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip 【备注】 1、该资源内项目代码百分百可运行,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值