子串出现

Zac*_*ack 0 python substring

我在这里有一个问题,我真的不知道从哪里开始

s1.find(s2)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

变量s1和s2指的是strs.表达式s1.find(s2)返回s1中第一次出现s2的索引.表达式s1.find(s2,5)返回s1中第一次出现s2的索引,从s1中的索引5开始.(有关详细信息,请参阅help(str.find))

写一个表达式,生成s1中第二次出现s2的索引.如果s2在s1中没有出现两次,则表达式应该生成-1.与str.count不同,您应该允许重叠出现s2.

例如,如果s1为"banana"且s2为"ana",则表达式应返回3.如果s1为"apple"且s2为"p",则表达式应返回2.

你的答案必须是一个不使用方括号的单个表达式(字符串索引和切片),你只能调用方法str.find并使用算术运算符(+, - 等).

Sha*_*ank 5

这打印3.

s1 = 'banana'
s2 = 'ana'
second_index = s1.find(s2, s1.find(s2)+1)
print(second_index)
Run Code Online (Sandbox Code Playgroud)

这打印-1.

s1 = 'bana'
s2 = 'ana'
second_index = s1.find(s2, s1.find(s2)+1)
print(second_index)
Run Code Online (Sandbox Code Playgroud)

因此,您可能正在寻找的表达方式是s1.find(s2, s1.find(s2)+1).