, поэтому мне нужен метод java, который получает переменную типа String, переменную типа char и переменную типа int:
public static int subStrMaxC(String s, char c, int k)
Так что идея этого метода состоит в проверке количества подстрокв строках s, которые начинаются и заканчиваются символом c и имеют максимум символов kc внутри них.при использовании временной сложности O (n) при n == s.length()
добавлении документации API ниже:
/**
* Checks how many Sub-Strings are within a given String that starts and ends with a given character and also has that character inside the Sub-String maximum a given amount of times.
* @param s the String to check for the Sub-String within.
* @param c the character to check the Sub-String according to.
* @param k the amount of time that the given character has to be within every Sub-String.
* @return the number of the valid Sub-Strings.
* @timeComplexity O(n) n - the String's (s) length.
* @SpaceComplexity O(1)
*/
например: subStrMaxC ("abcabcabc", 'c', 1);должен вернуть 3, потому что допустимая подстрока: "cabc", "cabc", "cabcabc"
вот мой код, но он не возвращает правильных ответов:
public static int subStrMaxC(String s, char c, int k) {
int count = 0, toReturn = 0;
for(int index = 0; index < s.length(); index++) {
if(s.charAt(index) == c)
count++;
}
while(k >= 0) {
if(k == 0)
return toReturn;
else if(k % 2 == 0) {
toReturn += count - (k + 1) - toReturn;
k--;
}
else {
toReturn += count / 2 - toReturn;
k--;
}
}
return toReturn;
}
Будетлюблю получать помощь!Спасибо!