DAY 30
0

# 1078. Occurrences After Bigram

## Question

Given two strings `first` and `second`, consider occurrences in some text of the form `"first second third"`, where `second` comes immediately after `first`, and `third` comes immediately after `second`.

Return an array of all the words `third` for each occurrence of `"first second third"`.

## Example

### Example1

``````Input: text = "alice is a good girl she is a good student", first = "a", second = "good"
Output: ["girl","student"]
``````

### Example2

``````Input: text = "we will we will rock you", first = "we", second = "will"
Output: ["we","rock"]
``````

### Constraints

• `1 <= text.length <= 1000`
• `text` consists of lowercase English letters and spaces.
• All the words in `text` a separated by a single space.
• `1 <= first.length, second.length <= 10`
• `first` and `second` consist of lowercase English letters.

## 解題

### Think

• 就照著上面的想法，每個index都往下兩個index判斷是否符合。
• 感覺改成while，讓符合條件存入list的時候讓index直接跳到下下一個位置的index可能可以再縮短一點執行時間。

### Code

#### Python

``````class Solution:
def findOcurrences(self, text: str, first: str, second: str) -> List[str]:
list_text = text.split(" ")
ans = []

for index in range(len(list_text)):

if list_text[index] == first:
if index+1 <= len(list_text)-1 and list_text[index+1] == second:
if index+2 <= len(list_text)-1:
ans.append(list_text[index+2])

return ans
``````

### Result

• Python
• 30天 Leetcode解題之路30