📅  最后修改于: 2023-12-03 15:40:33.349000             🧑  作者: Mango
在文本处理中,有时候需要检查一个子串是否出现在另一个子串之后。这个问题可以通过字符串匹配算法来解决,例如KMP算法。但是,如果我们只需要检查是否存在,那么可以使用一种更简单的方法。
假设我们需要检查子串S1是否出现在句子S中任何一个出现子串S2之后。我们可以先找到S2在S中的位置,然后从这个位置开始寻找S1是否出现。如果存在S2,那么肯定会存在S1,除非S2在S的末尾。
def check_substring(s, s1, s2):
pos = s.find(s2)
if pos == -1 or pos == len(s) - len(s2):
return False
else:
return s.find(s1, pos + len(s2)) != -1
以下是函数参数的说明:
函数的返回值为布尔值,表示是否存在符合条件的子串。
以下是函数使用的示例:
s = "I like apples. They are tasty. Do you like them too?"
s1 = "like"
s2 = "apples"
print(check_substring(s, s1, s2)) # True