20241024 finished.
This commit is contained in:
@@ -3,38 +3,37 @@
|
||||
*/
|
||||
pub struct Solution {}
|
||||
|
||||
|
||||
// submission codes start here
|
||||
|
||||
impl Solution {
|
||||
pub fn max_consecutive_answers(answer_key: String, k: i32) -> i32 {
|
||||
let str : Vec<char> = answer_key.chars().collect();
|
||||
|
||||
let str: Vec<char> = answer_key.chars().collect();
|
||||
|
||||
Self::max_consecutive_char(&str, k, 'T').max(Self::max_consecutive_char(&str, k, 'F'))
|
||||
}
|
||||
|
||||
fn max_consecutive_char(str: &Vec<char>, k: i32, c : char) -> i32 {
|
||||
|
||||
fn max_consecutive_char(str: &Vec<char>, k: i32, c: char) -> i32 {
|
||||
let n = str.len();
|
||||
let mut result = 0;
|
||||
|
||||
|
||||
let (mut left, mut sum) = (0, 0);
|
||||
for right in 0..n {
|
||||
sum += match str[right] == c {
|
||||
true => 0,
|
||||
false => 1
|
||||
false => 1,
|
||||
};
|
||||
|
||||
while sum > k {
|
||||
sum -= match str[left] == c {
|
||||
true => 0,
|
||||
false => 1
|
||||
false => 1,
|
||||
};
|
||||
left += 1;
|
||||
}
|
||||
|
||||
|
||||
result = result.max(right - left + 1);
|
||||
}
|
||||
|
||||
|
||||
result as i32
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user