2017-08-21 142 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

相关问题