# -*- coding:utf-8 -*-

class StringPattern:
def findAppearance(self, A, lena, B, lenb):
pos=0
tmp = 0
pmtlist= self.pmt(B)
mp=[]
while pos<len(A):
if B[tmp]==A[pos] :
if tmp==len(B)-1:
return pos-tmp
else:
tmp=tmp+1
pos=pos+1
else:
if tmp!=0:
pos=pos-pmtlist[tmp-1]
tmp=0
else:
pos=pos+1
return -1
# write code here
def pmt(self,initialstr=''):
pmtlist=[]
for i in range(len(initialstr)):
prefix=[]
suffix=[]
matchcount=0
substr=initialstr[0:i+1]
for j in range(len(substr)):
prefix.append(substr[0:j-1])
suffix.append(substr[i-j+1:i+1])
#print(substr,prefix,suffix)
for k in prefix:
if k in suffix:
matchcount=len(k)
pmtlist.append(matchcount)
return pmtlist
a=StringPattern()
print(a.findAppearance('abcbabcabfg',11,'abcab',5))

欢迎批评指正!

最新文章

  1. Dancing Links and Exact Cover
  2. Codeforces Round #380(div 2)
  3. cve-2015-5199漏洞分析
  4. iOS 统计App 的代码总行数
  5. ASCII编码表
  6. asp.net读取txt并导入数据库
  7. pip安装 MySQLDb 和 Django
  8. OI生涯中三届NOIP(2012-2014)流水账
  9. MFC对话框中解决回车键、ESC键退出的方法
  10. js判断年龄是否在0-100之间
  11. 基于visual Studio2013解决C语言竞赛题之1087数字变换
  12. Objective-c 中的算术函数和常数的表示
  13. Gulp实现服务器
  14. 3-Dom
  15. 支付宝即时到账DEMO配置与使用
  16. python_如何设置文件缓冲类型
  17. Vue之八 HTML5 History模式
  18. Flask 扩展 自定义扩展
  19. String总结
  20. python接口自动化测试(八)-unittest-生成测试报告

热门文章

  1. HYSBZ-1045 糖果传递
  2. Python全局变量的简单使用
  3. 从APP的启动说起
  4. angular实现地区三级联动
  5. vue 里bus的使用
  6. 【转】mac上安装gradle
  7. Lua继承userdata
  8. java控制流程(二)
  9. HDOJ 1003
  10. Java8 ParallelStream