算法快速入门
数据结构与算法
class Solution:
def strStr(self, haystack: str, needle: str) -> int:
# return self.strStr_str_equal(haystack, needle)
return self.strStr_char_equal(haystack, needle)
# CPU: 32ms, 96.92%, Memory: 14.8M, 95.42%
def strStr_str_equal(self, haystack: str, needle: str) -> int:
needle_len = len(needle)
haystack_len = len(haystack)
if needle_len == 0:
return 0
elif needle_len > haystack_len:
return -1
else:
for i in range(haystack_len - needle_len + 1):
if haystack[i: i + needle_len] == needle:
return i
return -1
# CPU: 32ms, 96.92%, Memory: 15M, 56.91%
def strStr_char_equal(self, haystack: str, needle: str) -> int:
needle_len = len(needle)
haystack_len = len(haystack)
if needle_len == 0:
return 0
elif needle_len > haystack_len:
return -1
else:
for i in range(haystack_len - needle_len + 1):
j = 0
for j in range(needle_len):
if haystack[i + j] != needle[j]:
break
if j == needle_len - 1 and haystack[i + j] == needle[j]:
return i
return -1注意点
练习
Last updated