查找子串
1、题目要求
实现字符串find方法,返回子串所在的位置
def find(string,sub)
2、程序分析
2.1 找到匹配子串第一个字符的位置
在目标字符串里,首先要找到和子串第一个字符相同的字符,因为这是可能的子串开始的位置
2.2 当第一步完成后,接下来要比较剩余的部分是不是完全匹配
这一步尤为关键,虽然找到了匹配子串第一个字符的位置,但还不能确定这就是子串开始的位置,接下来要逐个比对,确定从这个位置开始,目标串的每一个字符都匹配子串对应位上的字符
3、示例代码
#coding=utf-8
string = "I love python"
sub = 'pyth'
def find(string,sub):
index = -1
for i in range(len(string)):
if string[i] == sub[0]:
m = i
n = 0
while m < len(string) and n<len(sub)
and string[m] == sub[n]:
m += 1
n += 1
if n == len(sub):
index = i
break
return index
print find(string,sub)