题目描述
对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。
给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。
测试样例:
"acbc",4,"bc",2
返回:2
方法一:
# -*- coding:utf-8 -*-
class StringPattern:
def findAppearance(self, A, lena, B, lenb):
if lena<lenb :
return -1
if B in A :
for i in range(0,lena-lenb+1) :
if A[i]==B[0] :
if A[i:i+lenb]==B :
return i
return -1
方法二:(妙啊!)
# -*- coding:utf-8 -*-
class StringPattern:
def findAppearance(self, A, lena, B, lenb):
return A.index(B) if B in A else -1
另外把程序中的index换为find也可以,这两个方法的功能是一样的,只有些许不同,关于index和find具体可以参考下面两个链接:
https://www.runoob.com/python/att-string-index.html
https://www.runoob.com/python/att-string-find.html