Untitled
unknown
plain_text
10 months ago
1.7 kB
4
Indexable
import java.util.HashMap;
class Solution {
public int maxConsecutiveAnswers(String answerKey, int k) {
int result = k; // Initialize result to k
HashMap<Character, Integer> mp = new HashMap<>(); // Frequency map
int i = 0, j = 0; // Sliding window pointers
while (j < answerKey.length()) {
// Increment frequency of the current character
char currentChar = answerKey.charAt(j);
mp.put(currentChar, mp.getOrDefault(currentChar, 0) + 1);
// If the minimum count of 'T' or 'F' exceeds k, shrink the window
while (Math.min(mp.getOrDefault('T', 0), mp.getOrDefault('F', 0)) > k) {
char startChar = answerKey.charAt(i);
mp.put(startChar, mp.get(startChar) - 1);
i++; // Move the start of the window forward
}
// Update the result with the current window size
result = Math.max(result, j - i + 1);
// Expand the window
j++;
}
return result;
}
public static void main(String[] args) {
Solution solution = new Solution();
String answerKey1 = "TTFF";
int k1 = 2;
System.out.println(solution.maxConsecutiveAnswers(answerKey1, k1)); // Output: 4
String answerKey2 = "TFFT";
int k2 = 1;
System.out.println(solution.maxConsecutiveAnswers(answerKey2, k2)); // Output: 3
String answerKey3 = "TTFTTFTT";
int k3 = 1;
System.out.println(solution.maxConsecutiveAnswers(answerKey3, k3)); // Output: 5
}
}
Editor is loading...
Leave a Comment