• 注册
当前位置:1313e > python >正文

用Python简单写一个KMP

KMP

简单写一个KMP算法:


def Transform_Table(pattern):state = len(pattern)table = [[0 for _ in range(256)] for _ in range(state)]X = 0table[0][ord(pattern[0])] = 1for i in range(1, len(pattern)):current_char = ord(pattern[i])for j in range(256):if j == current_char:table[i][j] = i + 1else:table[i][j] = table[X][j]X = table[X][current_char]return tabledef search(str_data,table):final_state = len(table)result = []state = 0for i in range(len(str_data)):state = table[state][ord(str_data[i])]if state == final_state:result.append(i - final_state + 1)state = 0return resultpattern = "ababc"
table = Transform_Table(pattern)str_data = "ababababc"print(search(str_data,table))

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录