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 < String> list = new ArrayList<>();
    for (int i = 0; i  <  words.length - 2; i++) {
      if (words[i].equals(first) && words[i + 1].equals(second)) {
        list.add(words[i + 2]);
      }
    }
    return list.toArray(new String[list.size()]);
  }
}
Copy The Code & Try With Live Editor

Input

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

Output

x
+
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 & Try With Live Editor

Input

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

Output

x
+
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 < string>();
            for (int i = 0; i  <  words.Length - 2; i++)
            {
                if (words[i] == first && words[i + 1] == second)
                    results.Add(words[i + 2]);
            }

            return results.ToArray();
        }
    }
}
Copy The Code & Try With Live Editor

Input

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

Output

x
+
cmd
["we","rock"]
Advertisements

Demonstration


Previous
#1074 Leetcode Number of Submatrices That Sum to Target Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#1079 Leetcode Letter Tile Possibilities Solution in C, C++, Java, JavaScript, Python, C# Leetcode