美文网首页
字符串匹配算法之sunday算法python实现

字符串匹配算法之sunday算法python实现

作者: fabe3d19fb81 | 来源:发表于2017-02-24 15:21 被阅读172次

目标字符串s,匹配字符串p,找出p在s匹配的位置
s: A B C D E F G H I J K
i
p: G H I
j
i=0,j=0时 ,
if s[0] != p[0],则 i 移动len(p)的长度
检查s[len(p)]和p(j)中的每一个元素是否有相同
相同:则i移动到相同的位置开始检查
不同:则i移动的len(p)+1的位置开始匹配p(j)
依次循环找到字符串的位置

class MySunday(object):
    def __init__(self,s,p):
        self.s=s
        self.p=p
        self.s_len=len(s)
        self.p_len=len(p)
    def sundayAlgorithm(self):
        i=0
        s_header = 0
        s_tail = self.p_len
        while i<=self.s_len:
            if self.p[i]==self.s[i+s_header]:
                i=i+1
                if i==self.p_len:
                    return s_header       
            else:
                s_header=s_tail-self.compareP(self.s[s_tail]);
                s_tail=s_header + self.p_len
    def compareP(self,m):
        i=0
        while i<self.p_len:
            if self.p[i]==m:
                return i
            else:
                i=i+1
        return -1

相关文章

  • C / C++学习笔记:实现Sunday算法

    Sunday算法 Sunday 算法于 1990 年 Daniel M.Sunday 提出的字符串模式匹配。其效率...

  • 字符串匹配算法之sunday算法python实现

    目标字符串s,匹配字符串p,找出p在s匹配的位置s: A B C D E F G H I J Kip: G H...

  • 字符串匹配算法之Sunday算法

    字符串匹配算法之Sunday算法 背景 我们第一次接触字符串匹配,想到的肯定是直接用2个循环来遍历,这样代码虽然简...

  • 日常笔记

    字符串匹配的KMP算法和朴素算法,及其python实现 http://blog.csdn.net/chinwufo...

  • 2020-02-01 sunday算法总结

    Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是:在匹配过程中,模式...

  • 字符串匹配算法

    以下为学习 《数据结构与算法之美 -- 字符串匹配》 的记录。 BF算法 即暴力匹配算法,循环遍历匹配。 RK算法...

  • 字符串匹配算法——Sunday(PHP实现)

    Sunday 算法(尽可能的移动最大长度) Sunday算法是从前往后匹配,在匹配失败时关注的是文本串中参加匹配的...

  • 字符串匹配

    indexOf 底层就是使用字符串匹配算法 字符串匹配算法很多 BF( Brute Force)算法 暴力匹配算...

  • KMP算法文章合集

    字符串的查找:朴素查找算法和KMP算法 暴力匹配算法与KMP算法(串的匹配) 字符串查找算法BF和KMP 字符串匹...

  • 字符串匹配与KMP算法

    1.朴素字符串匹配算法 2.KMP算法 求前缀函数 实现KMP算法 3.测试代码

网友评论

      本文标题:字符串匹配算法之sunday算法python实现

      本文链接:https://www.haomeiwen.com/subject/qfjwwttx.html