先比对样式的最后一个字元,再从头开始比对
def match(pat,txt): lastt=len(txt)-1 lastp=len(pat)-1 endmatch=lastp start=0 #txt的index while endmatch <=lastt: if txt[endmatch]==pat[lastp]: #先比较最后一个字元,有中的话,再建立两个指针从头开始匹配其他字元是否有匹配 j=0 i=start while j<lastp and txt[i]==pat[j]: #从头开始匹配 i+=1 #i指针 用来指向txt的字元,因为是由左向右 所以是+=1 j+=1 #j指针 用来指向pat的字元,因为是由左向右 所以是+=1 if j==lastp: return start endmatch+=1 #逐步,往右边推进 start+=1 return -1
if __name__ == '__main__' : txt="xyz78517851abcukabcfsecgr" pat="abc" index=match(pat,txt) #只会回传递一个中的index print(index)