s = 'HERE IS A SIMPLE EXAMPLE'
p = 'EXAMPLE'
#s = 'qazwsxetgbdcrfvtgbatgb'
#p = 'tgbatgb'
d2 = 0
def bm(s, p):
global d2
n = len(s)
m = len(p)
# print(n, m)
j = int(m) - 1
i = int(m) - 1
while j < n and i > 0:
if s[j] == p[i]:
# print(s)
# print(' ' * (j - i) + p + "1")
j -= 1
i -= 1
elif s[j] in p:
# print(j)
# print(i)
# print(s)
# print(' ' * (j - i) + p + "2")
j3 = j + i - p.rindex(s[j])
# print('--j3--' + str(j3))
i = int(m) - 1
j1 = 0
if i != m - 1:
if p[:i].index(p[i+1:]):
d1 = p.index(p[i+1:])
j1 = j + i - d1
else:
for t in range(1, m-i):
if p[:t] in p[m-t:]:
d2 = t
j1 = j + m - 1 - d2
# print("j1--"+ str(j1))
if j1:
if j3 > j1:
j = j3
else:
j = j3
else:
j = j + i + 1
# print('--3--' + str(j))
if i == 0:
print(j)
else:
print("NONE")
bm(s, p)
python BM
最新推荐文章于 2023-06-05 04:41:53 发布