容易 字符串查找
對(duì)于一個(gè)給定的 source 字符串和一個(gè) target 字符串毡庆,你應(yīng)該在 source 字符串中找出 target 字符串出現(xiàn)的第一個(gè)位置(從0開(kāi)始)坑赡。如果不存在,則返回 -1么抗。
您在真實(shí)的面試中是否遇到過(guò)這個(gè)題?
樣例
如果 source = "source" 和 target = "target"蝇刀,返回 -1螟加。
如果 source = "abcdabcdefg" 和 target = "bcd",返回 1。
挑戰(zhàn)
O(n2)的算法是可以接受的捆探。如果你能用O(n)的算法做出來(lái)那更加好然爆。(提示:KMP)
說(shuō)明
在面試中我是否需要實(shí)現(xiàn)KMP算法曾雕?
不需要雌隅,當(dāng)這種問(wèn)題出現(xiàn)在面試中時(shí)翻默,面試官很可能只是想要測(cè)試一下你的基礎(chǔ)應(yīng)用能力。當(dāng)然你需要先跟面試官確認(rèn)清楚要怎么實(shí)現(xiàn)這個(gè)題修械。
解題思路
KMP算法
既然Python已經(jīng)給我們實(shí)現(xiàn)了KMP算法為何要重復(fù)造輪子,直接用str的find算法就可以了
參考答案
class Solution:
def strStr(self, source, target):
if None == source or None == target:
return -1
return source.find(target)