首页 > 其他分享 >【LeeCode】2024. 考试的最大困扰度

【LeeCode】2024. 考试的最大困扰度

时间:2023-02-27 23:32:34浏览次数:55  
标签:count 困扰 right int answerKey 2024 LeeCode new left

【题目描述】

一位老师正在出一场由 ​​n​​​ 道判断题构成的考试,每道题的答案为 true (用 ​​'T'​​​ 表示)或者 false (用 ​​'F'​​ 表示)。老师想增加学生对自己做出答案的不确定性,方法是 最大化 有 连续相同 结果的题数。(也就是连续出现 true 或者连续出现 false)。

给你一个字符串 ​​answerKey​​ ,其中 ​​answerKey[i]​​ 是第 ​​i​​ 个问题的正确结果。除此以外,还给你一个整数 ​​k​​ ,表示你能进行以下操作的最多次数:

  • 每次操作中,将问题的正确答案改为 ​​'T'​​ 或者 ​​'F'​​ (也就是将 ​​answerKey[i]​​ 改为 ​​'T'​​ 或者 ​​'F'​​ )。

请你返回在不超过 ​​k​​ 次操作的情况下,最大 连续 ​​'T'​​ 或者 ​​'F'​​ 的数目。

​https://leetcode.cn/problems/maximize-the-confusion-of-an-exam/​


【示例】

【LeeCode】2024. 考试的最大困扰度_java


【代码】admin

思路:双指针  ​​【LeeCode】424. 替换后的最长重复字符​

package com.company;
import java.util.*;

// 2023-2-27
class Solution {
public int maxConsecutiveAnswers(String answerKey, int k) {
int len = answerKey.length();
int res = 0;
int left = 0;
int right = 0;
int count = 0;
int[] nums = new int[26];

while (right < len){
nums[answerKey.charAt(right) - 'A']++;
count = Math.max(count, nums[answerKey.charAt(right) - 'A']);

if (right - left + 1 - count > k){
nums[answerKey.charAt(left) - 'A']--;
left++;
}
right++;
}
System.out.println(right - left);

return res;
}
}

public class Test {
public static void main(String[] args) {
new Solution().maxConsecutiveAnswers( "TTFF", 2); // 输出: 4
new Solution().maxConsecutiveAnswers( "TTFF", 1); // 输出: 3
new Solution().maxConsecutiveAnswers( "TTFTTFTT", 1); // 输出: 5
}
}

标签:count,困扰,right,int,answerKey,2024,LeeCode,new,left
From: https://blog.51cto.com/u_13682316/6089302

相关文章

  • 【LeeCode】957. N 天后的牢房 -- todo
    【题目描述】监狱中 ​​8​​ 间牢房排成一排,每间牢房可能被占用或空置。每天,无论牢房是被占用或空置,都会根据以下规则进行变更:如果一间牢房的两个相邻的房间都被占用或......
  • 【LeeCode】剑指 Offer II 088. 爬楼梯的最少成本-- todo
    【题目描述】数组的每个下标作为一个阶梯,第 ​​i​​​ 个阶梯对应着一个非负数的体力花费值 ​​cost[i]​​​(下标从 ​​0​​ 开始)。每当爬上一个阶梯都要花费对......
  • 【LeeCode】424. 替换后的最长重复字符
    【题目描述】给你一个字符串 ​​s​​​ 和一个整数 ​​k​​​ 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 ​​k​​ ......
  • 【LeeCode】1208. 尽可能使字符串相等
    【题目描述】给你两个长度相同的字符串,​​s​​​ 和 ​​t​​。将 ​​s​​ 中的第 ​​i​​ 个字符变到 ​​t​​ 中的第 ​​i​​ 个字符需要 ​​|s[i......
  • Vue3中url传递参数通过全局前置守卫接收参数,利用store存储并控制DOM显示或隐藏(记录一
    业务场景:根据路由传递的标志eg:hidden来控制侧边栏和横条显示或隐藏核心代码:<a-layout-headerclass="header"v-if="!(parseInt(hidden)===1?true:false)">......
  • 征服leecode第一天
    准备开始征服leecode了目前的想法是做leecodehot100两数之和两数之和在最开始拿到的时候想排序,然后遍历,得到结果,但是这里排序会改变下标的值,于是失败。代码如下......
  • 【LeeCode】28. 找出字符串中第一个匹配项的下标
    【题目描述】给你两个字符串 ​​haystack​​ 和 ​​needle​​ ,请你在 ​​haystack​​ 字符串中找出 ​​needle​​ 字符串的第一个匹配项的下标(下标从0开......
  • 【LeeCode】剑指 Offer 58 - II. 左旋转字符串
    【题目描述】字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回......
  • 【LeeCode】151. 反转字符串中的单词
    【题目描述】给你一个字符串 ​​s​​ ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。​​s​​ 中使用至少一个空格将字符串中的 单词 分隔开......
  • 【LeeCode】344. 反转字符串
    【题目描述】编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 ​​s​​ 的形式给出。不要给另外的数组分配额外的空间,你必须​​原地​​修改输入数......