У вас есть строка S длины N и один символ X. Найдите количество различных подстрок строки S, которые хотя бы раз содержат символ X.
ВВОД: abcabc c ВЫХОД: 15 здесь 'c' - символ.
И Как задавать и отвечать на вопросы по домашнему заданию?
Сначала найдите count_total_substring
строки S по формуле N*(N+1)/2
.
Затем нарежьте/разделите строку с помощью символа X. Затем мы получаем массив подстрок токена строки S, который исключает символ поиска. Теперь применить
substring_count=length*(length+1)/2
формулу для каждой из этих подстрок. Суммируйте все подстроки. Суммарный результат — это количество всех подстрок, которые не содержат ни одного символа X, назовем его count_not_present.
Теперь результат должен быть = count_total_substring - count_not_present.
int c=0, i, notPresent=0;
int totalSubstring = N * (N+1) / 2;
for (i = 0; i < size; i++)
{
if (S.charAt(i) == search) {
notPresent += (c * (c+1) / 2);
c = 0;
}
else {
c++;
}
}
notPresent += (c * (c+1) / 2);
result = totalSubstring - notPresent;
System.out.println(result);
Это, насколько я мог найти. Пожалуйста, проверьте, отсутствует ли какой-либо регистр в этой логике.
Что такое srcStr? Не могли бы вы рассказать?
Входная строка. Судя по вашему вопросу, это "abcabc"
Добро пожаловать! Я отредактировал символы ответа в соответствии с вашим вопросом. Теперь, надеюсь, будет понятнее. Пожалуйста, проголосуйте за ответ.
Добро пожаловать в Stack Overflow. Прочтите страницы справки, особенно «На какие темы я могу здесь спросить?» и «Каких вопросов мне следует избегать?». Также взять тур и читайте о том, как задавать хорошие вопросы и контрольный список этого вопроса. Наконец, узнайте, как создать файл минимальный воспроизводимый пример.