千家信息网

LeetCode中怎么替换后的最长重复字符串

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,LeetCode中怎么替换后的最长重复字符串,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目描述:给你一个仅由大写英文字母组成的字符串
千家信息网最后更新 2025年01月25日LeetCode中怎么替换后的最长重复字符串

LeetCode中怎么替换后的最长重复字符串,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

题目描述:

给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。

注意:字符串长度 和 k 不会超过 10^4。

示例 1:

输入:s = "ABAB", k = 2
输出:4
解释:用两个'A'替换为两个'B',反之亦然。

示例 2:

输入:s = "AABABBA", k = 1
输出:4
解释:
将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。
子串 "BBBB" 有最长重复字母, 答案为 4

思路分析:

一看到最长字符串就想到滑动窗口。

算法流程:

  • 右边界先移动找到一个满足题意的可以替换 k 个字符以后,所有字符都变成一样的当前看来最长的子串,直到右边界纳入一个字符以后,不能满足的时候停下;
  • 然后考虑左边界向右移动,左边界只须要向右移动一格以后,右边界就又可以开始向右移动了,继续尝试找到更长的目标子串;
  • 替换后的最长重复子串就产生在右边界、左边界交替向右移动的过程中。
class Solution:
def characterReplacement(self, s: str, k: int) -> int:
from collections import defaultdict
d = defaultdict(int)
l = 0
maxn = 0
for r in range(len(s)):
d[s[r]] += 1
maxn = max(maxn, d[s[r]])
if r - l + 1 > maxn + k: # bc it is for loop, r += 1 is later than if clause
d[s[l]] -= 1
l += 1
return len(s) - l
class Solution {
public int characterReplacement(String s, int k) {
int len=s.length();
if(len<2){
return len;
}
char[] chararray=s.toCharArray();
int left=0,right=0;
int maxCount=0,res=0;
int[] freq = new int[26];
while(right freq[chararray[right]-'A']++;
maxCount=Math.max(maxCount,freq[chararray[right]-'A']);
right++;
if(right-left>maxCount+k){
freq[chararray[left]-'A']--;
left++;
}
res=Math.max(res,right-left);

}
return res;
}
}

看完上述内容,你们掌握LeetCode中怎么替换后的最长重复字符串的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

字符 最长 字符串 移动 右边 字母 两个 内容 方法 更多 示例 长度 问题 解释 输入 输出 束手无策 为此 位置 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发 基本原理 计算机软件开发要会打字吗 平谷区卫星软件开发联系方式 软件开发高性能计算 中国电信大数据库 软件开发价格公司 python学炒股软件开发 井陉新闻网络安全应急演练 江西家用软件开发直销价格 什么是kms服务器地址 机房采用哪种网络技术 计算机网络技术url术语翻译 群硕软件开发上海有限公司怎么样 数据库中的表与自由表 福安市微盛网络技术咨询服务部 太原交通软件开发公司电话 多方位构筑网络安全防护网 数据库技术和动态网站 涿州软件开发 服务器维护外包 海南畅音网络技术有限公司诈骗 大学生网络安全危险 天王下载软件开发 开拓者交易软件开发平台 java 读取数据库时间 济南服务器安全厂商 n11数据库管理工具密码在哪里 软件开发外包年度框架合同交流 如何与软件开发商谈价格 核心技术人员删除服务器数据
0