这道题就是要求实现re里面的那个re.match()功能。
坑的地方主要就是在两个字符串都是空的时候。还有下面的代码可以更简化一点,内循环可以用判断haystack[i:i+len(needle)] == needle来实现,Python的切片功能还是很实用的。
下附AC代码:
class Solution:
def strStr(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
if len(haystack) == 0:
if len(needle) == 0 :
return 0
else: return -1
for i in range(len(haystack)-len(needle)+1):
flag = 1
for j in range(len(needle)):
if i+j<len(haystack) and haystack[i+j] == needle[j]:
continue
else:
flag = 0
break
if flag:
return i
return -1