其他题目---KMP算法
来源:互联网 发布:java静态变量 定义 编辑:程序博客网 时间:2024/06/09 21:49
【题目】
给定两个字符串str和match,长度分别为N和M。实现一个算法,如果字符串str中含有子串match,则返回match在str中的开始位置,不含有则返回-1。
【代码实现】
#python3.5def getIndexOf(strS, strM): def getNextArray(str1): if len(str1) == 1: return [-1] nextArr = [0 for i in range(len(str1))] nextArr[0] = -1 nextArr[1] = 0 pos = 2 cn = 0 while pos < len(str1): if str1[pos-1] == str1[cn]: nextArr[pos] = cn + 1 pos += 1 cn += 1 elif cn == 0: nextArr[pos] = 0 pos += 1 else: cn = nextArr[cn] return nextArr if strS == None or strM == None or len(strM) < 1 or len(strS) < len(strM): return -1 nextArr = getNextArray(strM) si = 0 mi = 0 while si < len(strS) and mi < len(strM): if strS[si] == strM[mi]: si += 1 mi += 1 elif mi == 0: si += 1 else: mi = nextArr[mi] return -1 if mi != len(strM) else si - mi
阅读全文
2 0
- 其他题目---KMP算法
- 其他题目---蓄水池算法
- 其他题目---Manacher算法
- 杭电 KMP算法题目
- KMP题目
- KMP题目
- KMP算法及POJ上相关的题目
- kmp算法(字符串匹配 next应用 hdu题目集合)
- Google, Facebook算法题目和其他资料的讨论blog
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- pku kmp题目小结
- poj KMP题目总汇
- KMP题目整合
- kmp算法
- KMP算法
- KMP算法
- 【ML学习笔记】3:机器学习中的数学基础3(特征值,特征向量,认识SVD)
- 使用cJSON解析JSON串时汉字出现多余的'\'
- 源码分析参考:Spider
- 11.3-11.10未一次ac题目(2017)
- Multi tenancy
- 其他题目---KMP算法
- 微信 Tinker 在 Android 中集成以及使用
- Oracle数据库闪回FLASHBACK命令总结
- DateTime格式大全
- MyBatis源码简析
- 修改maven仓库的位置/本地目录
- JQuery3.1.1源码解读(十九)【ajax】
- 实习第三天
- Fresco属性及 scleType大全