題目:
對於乙個給定的 source 字串和乙個 target 字串,你應該在 source 字串中找出 target 字串出現的第乙個位置(從0開始)。如果不存在,則返回 -1。樣例樣例 1:輸入: source = 「source」 , target = 「target」
輸出:-1
樣例解釋: 如果source裡沒有包含target的內容,返回-1
樣例 2:輸入: source = 「abcdabcdefg」 ,target = 「bcd」
輸出: 1
樣例解釋: 如果source裡包含target的內容,返回target在source裡第一次出現的位置
挑戰o(n2)的演算法是可以接受的。如果你能用o(n)的演算法做出來那更加好。
正確解法:
def strstr(self, source, target):
if source is none or target is none:
return -1
ls, lt = len(source), len(target)
for i in range(ls - lt + 1):
print(i)
j = 0
while j < lt and source[i+j] == target[j]:
j += 1
if j == lt:
return i
return -1
錯誤解法:
def strstr(self, source, target):
if (len(source)==0 and len(target)==0) or (len(target)==0):
return 0
if len(source)==0:
return -1
if len(target)>len(source):
return -1
i=0j=0
while i =len(source):
return -1
else:
continue
else:
i=i+1
j=j+1
print("3:",i,j)
if j>=len(source) and i=len(target):
res=j-i
return res
錯誤解法,若source=「sourced」,target="orc"輸出為2.列印日誌為:
2: 0 1
3: 1 2
2: 1 3
3: 2 4
3: 3 5
以上解法思路可用於判斷字串target中的所有字元是否存在於source中。
python 裡的none相當於乙個空物件,type(none)為而 「」 就是乙個空字串,判斷時結果都是false
週中訓練筆記
rand 函式 rand n 範圍 0 n 1 n rand m n 1 範圍n m 線段樹的概括 1.是乙個完全二叉樹 2.主要用於解決解決連續區間的動態查詢問題 現在對於線段樹的認識還很侷限,所以概括的也非常籠統,接下來的幾天會繼續研究線段樹的。然後就是今天的廣西邀請賽重現賽的題 今天因為下午有...
週末訓練筆記(三)
感覺這兩天受到了一萬點的傷害,也越發的感覺到了自己的不足,這兩天的比賽就ac了一道題,還有一道題感覺思路是對的,但是不知道為什麼過不了。1.輸入維多利亞和她丈夫的屬相,然後判斷他們的年齡差幾歲。解題思路 把12個屬相存到乙個陣列中然後根據不同的情況有正反兩種迴圈,迴圈到和他們屬相相同的元素的下標存起...
週中訓練筆記(四)
線段樹總結 線段樹儲存的是區間的資訊然後在可以進行區間的各種操作。對於節點a n 它的左兒子為a 2 n 右兒子為a 2 n 1 假如這個節點所表示的區間為 1,5 那麼它左兒子表示的區間為 1,3 右兒子表示的區間為 4,5 公式為mid l r 2,左兒子表示的區間為 l,mid 右兒子表示的區...