集团网站建设哪个好,百度搜索引擎优化,wordpress新建php页面模板,学校网站建设策划书题目描述
对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。
给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。
测试样例:
"…
题目描述
对于两个字符串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 -1if B in A :for i in range(0,lena-lenb+1) :if A[i]==B[0] :if A[i:i+lenb]==B :return ireturn -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