Welcome to Subscribe On Youtube
1078. Occurrences After Bigram
Description
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
andsecond
consist of lowercase English letters.
Solutions
-
class Solution { public String[] findOcurrences(String text, String first, String second) { String[] words = text.split(" "); List<String> ans = new ArrayList<>(); for (int i = 0; i < words.length - 2; ++i) { if (first.equals(words[i]) && second.equals(words[i + 1])) { ans.add(words[i + 2]); } } return ans.toArray(new String[0]); } }
-
class Solution { public: vector<string> findOcurrences(string text, string first, string second) { istringstream is(text); vector<string> words; string word; while (is >> word) { words.emplace_back(word); } vector<string> ans; int n = words.size(); for (int i = 0; i < n - 2; ++i) { if (words[i] == first && words[i + 1] == second) { ans.emplace_back(words[i + 2]); } } return ans; } };
-
class Solution: def findOcurrences(self, text: str, first: str, second: str) -> List[str]: words = text.split() ans = [] for i in range(len(words) - 2): a, b, c = words[i : i + 3] if a == first and b == second: ans.append(c) return ans
-
func findOcurrences(text string, first string, second string) (ans []string) { words := strings.Split(text, " ") n := len(words) for i := 0; i < n-2; i++ { if words[i] == first && words[i+1] == second { ans = append(ans, words[i+2]) } } return }
-
function findOcurrences(text: string, first: string, second: string): string[] { const words = text.split(' '); const n = words.length; const ans: string[] = []; for (let i = 0; i < n - 2; i++) { if (words[i] === first && words[i + 1] === second) { ans.push(words[i + 2]); } } return ans; }