Решение 1:
Представьте документ как String[]
и просто переберите слова в документе. Когда вы увидите firstInput
, проверьте, что следующее слово - secondInput
.
Решение 2:
Создайте обратный индекс для документа; т. е. Map<String, int[]>
, где String
ключи - это слова, а значения int[]
содержат индексы для каждого вхождения слова в документе.
Заполните обратный индекс из документа.
Затем, чтобы найти, если firstInput
сопровождается secondInput
:
int[] fi = reverseIndex.get(firstInput);
int[] si = reverseIndex.get(secondInput);
if (fi == null || si == null) {
return false;
}
for (int i = 0; i < fi.length; i++) {
for (int j = 0; j < si.length; j++) {
if (fi[i] == si[j] - 1) {
return true;
}
}
}
return false.