首页 > 其他分享 >【LeeCode】424. 替换后的最长重复字符

【LeeCode】424. 替换后的最长重复字符

时间:2023-02-24 23:00:48浏览次数:54  
标签:字符 right int max LeeCode num 424 left

【题目描述】

给你一个字符串 ​​s​​​ 和一个整数 ​​k​​​ 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 ​​k​​ 次。

在执行上述操作后,返回包含相同字母的最长子字符串的长度。

​https://leetcode.cn/problems/longest-repeating-character-replacement/​


【示例】

【LeeCode】424. 替换后的最长重复字符_Math


【代码】admin

思路:双指针

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

// 2023-2-24
class Solution {
public int characterReplacement(String s, int k) {
int len = s.length();
int[] num = new int[26];
int left = 0;
int right = 0;
int max = 0;

while (right < len){
num[s.charAt(right) - 'A']++;
max = Math.max(max, num[s.charAt(right) - 'A']);
// right-left+1表示的字符长度, 减去max 就是说去除重复字符后,剩余的那个字符(可变字符)数量
if (right - left + 1 - max > k){
num[s.charAt(left) - 'A']--;
left++;
}
right++;
}
return right - left;
}
}

public class Test {
public static void main(String[] args) {
new Solution().characterReplacement("ABAB", 2); // 输出: 4
new Solution().characterReplacement("AABABBA",1); // 输出:4
}
}

标签:字符,right,int,max,LeeCode,num,424,left
From: https://blog.51cto.com/u_13682316/6084413

相关文章

  • 【LeeCode】1208. 尽可能使字符串相等
    【题目描述】给你两个长度相同的字符串,​​s​​​ 和 ​​t​​。将 ​​s​​ 中的第 ​​i​​ 个字符变到 ​​t​​ 中的第 ​​i​​ 个字符需要 ​​|s[i......
  • 一维字符数组
    一维字符数组初始化逐个元素初始化(不推荐)例如:chararr[5]={'h','e','l','l','o'};以字符串的方式初始化(推荐)例如:chararr[6]="hello"......
  • Redis设计与实现—简单动态字符串、链表、字典
    前言《Redis设计与实现》数据结构部分有关字符串类型介绍。@目录前言一、数据结构——简单动态字符串1.1SDS定义1.2SDS与C字符串的区别1.2.1常数复杂度获取字符串长度......
  • redis(4)String字符串
    前言Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String Redis字符串String是Redis最基本的类型,你可......
  • java 中清理所有特殊字符
    publicstaticStringfilter(Stringstr)throwsPatternSyntaxException{//清除掉所有特殊字符StringregEx="[`_《》!@#$%^&*()+=|{}':;',\[\].<>?!@#¥%……&*()——+......
  • Java判断字符串是否为数字(正负、小数)
    BooleanstrResult=number.matches("-?[0-9]+.*[0-9]*");if(strResult){ //将字符串转换成Double类型 doublen=Double.valueOf(number); //四舍五入保留两位 Bi......
  • 【后端过程记录】用flask搭建服务器作后端接收数据 将base64字符串码解码为可读取文件
    因为项目的原因了解到有一个python的flask框架,查了一下:关于前端图片上传的canvas:如下元素<canvasid="canvas"width="5"height="5"></canvas>可以用这样的方式获......
  • 字符串
    字符串赋值(C字符串)将字符串b赋值给字符串a:=:定义时赋值,b必须是字符串变量。 strcpy(char*a,char*b) :b须是字符串常量或C字符串。例:chara[20],b[20]="Hello";......
  • Redis SET命令用于在Redis键中设置一些字符串值。
    RedisSET命令用于在Redis键中设置一些字符串值。返回值如果在键中设置了值,返回简单字符串回复:OK。如果值没有设置则返回Null。语法下面是RedisSET命令的基本语法......
  • P3989 [SHOI2013]阶乘字符串 题解
    由于一些不可抗拒的原因,\(n\ge22\)无解。那么只用考虑\(n\le21\)的情况即可。由于\(n\)的范围缩小,导致状压又可以重新使用,所以考虑状压。设\(f_i\)为\(i\)中......