题目描述:
给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。
对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。
示例 1:
输入:text = “alice is a good girl she is a good student”, first = “a”, second = “good”
输出:[“girl”,“student”]
示例 2:
输入:text = “we will we will rock you”, first = “we”, second = “will”
输出:[“we”,“rock”]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/occurrences-after-bigram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码:
class Solution(object):
def findOcurrences(self, text, first, second):
"""
:type text: str
:type first: str
:type second: str
:rtype: List[str]
"""
res = []
text = text.split(" ")
for i in range(len(text) - 2):
if text[i] == first and text[i + 1] == second:
res.append(text[i + 2])
return res
思路:
虽然这个题目是一个简单的题目,但是一开始我确实没什么思路把句中的每个词分开,不过百度到python的split()方法放到这里特别好使。split(sep, maxsplit)中sep是分隔符,不写分隔符时表示所有的空字符(空格、换行、制表符等),而英语文本中正好以空格隔开两个词。将语句按原顺序分割成一个一个的词,这个题目就迎刃而解了。