2017-08-21 172 views
-1

我想檢查給定的字符串是否是另一個字符串的子字符串,並打印出發生子字符串的字符串的索引值。檢查字符串是否是子字符串

到目前爲止,我有這樣的代碼。爲了減少複雜性,我使用單循環。

s1 = "robot" 
s2 = "bot" 
for i in range(len(s2)): 
      if s1[i] == s2[i]: 
       i =i +1 

      print(i) 

或可替代我在想這件事,

for i in range(len(s1)): 
    for j in range(len(s2)): 
     if s1[i] == s2[j] 
       i = i+1 
       j = j+1 
     print(i) 

我知道我們可以用in關鍵字來解決這個問題,但我想了解它背後的邏輯。

請幫幫我。我很長一段時間來解決這些問題。

+2

什麼是你的問題?如果這些不起作用,請解釋它們如何不採樣輸入和輸出。如果他們這樣做,你在問什麼? –

+0

使用python'str.find()' – turnt

+1

[這是它背後的邏輯。](http://effbot.org/zone/stringlib.htm) –

回答

0

您可以使用內建字符串方法find(),該方法將返回子字符串的索引,如果未找到,則返回-1。

>>> "robot".find("bot") 
2 
>>> "robot".find("Xbot") 
-1 
+0

OP知道這些,他們試圖自己實現它。 –

0

這裏是一個垃圾實現:

a = 'pleb' 
b = 'youreapleb' 

def find(a, b): 
    for i, c in enumerate(b): 
    if a == b[i: i + len(a)]: 
     return i 

print find(a, b) 
+0

U正在使用我作爲櫃檯變化,這裏「c」的作用是什麼。 – 1KT1

+0

嗨,我知道你爲什麼在那裏使用c。它在那裏,如果我們想訪問每個計數器變量的值。非常感謝你的幫助。 – 1KT1

相關問題