反向查找子串
1、 题目要求
实现函数 rfind(string,sub) ,反向查找sub在string中的位置
例如字符串 “cdeabcdeaba” 反向查找子串cde ,返回值应该为5
2、 程序思路
- 遍历字符串的过程要从右向左开始
- 比较的字符不再是子串的首个字符,而是子串的末尾字符,找到末尾字符后还要比较剩余的部分
- 最后还要反向的计算子串开始的位置
3、示例代码
#coding=utf-8
string = "cdeabcdeaba"
def rfind(string,sub):
index = -1
for i in range(len(string)-1,-1,-1):
if string[i] == sub[-1]:
m = i
n = len(sub)-1
while n >= 0 and m >=0 and string[m] == sub[n]:
m -= 1
n -= 1
if n == -1:
return m + 1
return index
print rfind(string,'cde')