## Algorithm

Problem Name: 1078. Occurrences After Bigram

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 1:

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

Example 2:

```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.

## Code Examples

### #1 Code Example with Java Programming

```Code - Java Programming```

``````
class Solution {
public String[] findOcurrences(String text, String first, String second) {
String[] words = text.split("\\s+");
List list = new ArrayList<>();
for (int i = 0; i < words.length - 2; i++) {
if (words[i].equals(first) && words[i + 1].equals(second)) {
}
}
return list.toArray(new String[list.size()]);
}
}
``````
Copy The Code &

Input

cmd
text = "alice is a good girl she is a good student", first = "a", second = "good"

Output

cmd
["girl","student"]

### #2 Code Example with Python Programming

```Code - Python Programming```

``````
class Solution:
def findOcurrences(self, text: str, first: str, second: str) -> List[str]:
text = text.split()
return [text[i] for i in range(2, len(text)) if text[i-1] == second and text[i-2] == first]
``````
Copy The Code &

Input

cmd
text = "alice is a good girl she is a good student", first = "a", second = "good"

Output

cmd
["girl","student"]

### #3 Code Example with C# Programming

```Code - C# Programming```

``````
using System.Collections.Generic;

namespace LeetCode
{
public class _1078_OccurrencesAfterBigram
{
public string[] FindOcurrences(string text, string first, string second)
{
var words = text.Split();

var results = new List();
for (int i = 0; i < words.Length - 2; i++)
{
if (words[i] == first && words[i + 1] == second)
}

return results.ToArray();
}
}
}
``````
Copy The Code &

Input

cmd
text = "we will we will rock you", first = "we", second = "will"

Output

cmd
["we","rock"]