Очень не корректно поставлен вопрос. Что есть Текст? Это текстовый файл, строка, введенная пользователем, еще что-то? Думайте, прежде чем спросить, и, скорее всего, получите нормальный ответ.
Поэтому, поскольку нет конкретики, будем считать текстом строку, введенную пользователем.
Write('Введите текст : ');
ReadLn(S);
В переменной S теперь находится некоторый текст. Начнем с ним работать. Будем считать словом последовательность символов, ограниченных с обеих сторон пробелами. Сначала сделаем копию введенного текста.
S1 := ' ' + S + ' '; {чтобы не потерять первое и последнее слова}
А дальше,
N := 0; {счетчик слов Мама}
while Pos(' Мама ', S1) > 0 then begin
Delete(S1, Pos(' Мама ', S1)+1, 4);
N := N + 1;
end;
Поскольку может в тексте быть и "мама", то повторим
while Pos(' мама ', S1) > 0 then begin
Delete(S1, Pos(' мама ', S1)+1, 4);
N := N + 1;
end;
Вот и все. Осталось вывести результат.
WriteLn('Во ввденном тексте слово "мама" встречается ', N, ' раз');
Удачи!
PS Можно было бы не делать второй проход, если предварительно преобразовать введенный текст к одному регистру, а затем искать подстроку в этом регисте.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
int[] array = new int[n];
int[] array1 = new int[n];
for (int i = 0;i < array.length;i++){
array[i] = in.nextInt();
}
for (int i = 0;i < k;i++){
array1[i] = in.nextInt();
System.out.println(binarySearch(array,array1[i]));
}
}
static String binarySearch(int[] sortedArray, int key) {
int index = -1;
int low = 0;
int high = sortedArray.length - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (sortedArray[mid] < key) {
low = mid + 1;
} else if (sortedArray[mid] > key) {
high = mid - 1;
} else if (sortedArray[mid] == key) {
return "YES";
}
}
return "NO";
}
}
Объяснение:
ответ:Доброго времени суток.
Очень не корректно поставлен вопрос. Что есть Текст? Это текстовый файл, строка, введенная пользователем, еще что-то? Думайте, прежде чем спросить, и, скорее всего, получите нормальный ответ.
Поэтому, поскольку нет конкретики, будем считать текстом строку, введенную пользователем.
Write('Введите текст : ');
ReadLn(S);
В переменной S теперь находится некоторый текст. Начнем с ним работать. Будем считать словом последовательность символов, ограниченных с обеих сторон пробелами. Сначала сделаем копию введенного текста.
S1 := ' ' + S + ' '; {чтобы не потерять первое и последнее слова}
А дальше,
N := 0; {счетчик слов Мама}
while Pos(' Мама ', S1) > 0 then begin
Delete(S1, Pos(' Мама ', S1)+1, 4);
N := N + 1;
end;
Поскольку может в тексте быть и "мама", то повторим
while Pos(' мама ', S1) > 0 then begin
Delete(S1, Pos(' мама ', S1)+1, 4);
N := N + 1;
end;
Вот и все. Осталось вывести результат.
WriteLn('Во ввденном тексте слово "мама" встречается ', N, ' раз');
Удачи!
PS Можно было бы не делать второй проход, если предварительно преобразовать введенный текст к одному регистру, а затем искать подстроку в этом регисте.