# 实现strStr()
# 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
class Solution(object):
def str_str(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
# 方法一:
# if needle not in haystack:
# return -1
# return haystack.find(needle)
# find()方法检测字符串中是否包含子字符串 str,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
# str.find(str, beg=0, end=len(string))
# str -- 指定检索的字符串
# beg -- 开始索引,默认为0。
# end -- 结束索引,默认为字符串的长度。
# 方法二:
l = len(needle)
for i in range(len(haystack) - l + 1): # 目标needle字符串的长度在haystack字符串中比较需要多少次
if haystack[i:i + l] == needle: # 如:i = 0 haystack[0:2] 其实按索引来只取了0和1
return i # 返回索引
return -1