https://leetcode.com/problems/occurrences-after-bigram | Easy |
---|
Дана строка текста и два слова first и second. Верни список слов, которые следуют сразу после комбинации first и second в тексте.
Input:
text = "alice is a good girl she is a good student", first = "a", second = "good”Output:
["girl", "student"]
Input:
text = "we will we will rock you", first = "we", second = "will”Output:
["we", "rock"]
fun findOcurrences(text: String, first: String, second: String): Array<String> {
val words = text.split(" ") // Разделяем текст на отдельные слова
val result = mutableListOf<String>() // Создаём список для хранения результата
for (i in 0..words.size - 3) { // Перебираем слова, останавливаясь за 2 слова до конца
if (words[i] == first && words[i + 1] == second) { // Если текущие слова совпадают с first и second
result.add(words[i + 2]) // Добавляем следующее слово в результат
}
}
return result.toTypedArray() // Возвращаем результат в виде массива строк
}
Сложность O(n), где n — количество слов в тексте.
Сложность O(n), в худшем случае при хранении результата.