Leetcode--424. 替换后的最长重复字符

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

注意:
字符串长度 和 k 不会超过 104。

示例 1:

输入:
s = "ABAB", k = 2

输出:
4

解释:
用两个'A'替换为两个'B',反之亦然。
示例 2:

输入:
s = "AABABBA", k = 1

输出:
4

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

思路:双指针法

1.从左指针指向的位置开始遍历,每次将左指针指定的字符设定为一个标准,右指针向右遍历

2.1如果与标准相同,继续向下遍历

2.2如果不同,要是还有交换次数,那就换掉这个字符继续向后遍历

2.3如果没有交换次数且不相同,则退出本次遍历,左指针向后移一位

3.重复1操作

提交的代码:

class Solution {
    public int characterReplacement(String s, int k) {
        int i=0,j=0,sum=1,max=0,t=k;
    if(s.length()>1)
    {
        if(s.charAt(0)!=s.charAt(1)&&t>0)
        {
            t--;
            sum++;
        }
        for(j=2;j<s.length();j++)
        {
            if(s.charAt(j)!=s.charAt(1)&&t>0)
            {
                t--;
                sum++;
            }
            else if(s.charAt(j)==s.charAt(1))
            {
                sum++;
            }
            else
            {
                break;
            }
            max = Math.max(max, sum);
        }
        
    }
    for(i=0;i<s.length()-1;i++)
    {
        sum=1;
        t=k;
        for(j=i+1;j<s.length();j++)
        {
            if(s.charAt(j)!=s.charAt(i)&&t>0)
            {
                t--;
                sum++;
            }
            else if(s.charAt(j)==s.charAt(i))
            {
                sum++;
            }
            else
            {
                break;
            }
            max = Math.max(max, sum);
        }
    }
    return max;
    }
}

完整的代码:


public class Solution424 {
public static int characterReplacement(String s, int k) {
    int i=0,j=0,sum=1,max=0,t=k;
    if(s.length()>1)
    {
        if(s.charAt(0)!=s.charAt(1)&&t>0)
        {
            t--;
            sum++;
        }
        for(j=2;j<s.length();j++)
        {
            if(s.charAt(j)!=s.charAt(1)&&t>0)
            {
                t--;
                sum++;
            }
            else if(s.charAt(j)==s.charAt(1))
            {
                sum++;
            }
            else
            {
                break;
            }
            max = Math.max(max, sum);
        }
        
    }
    for(i=0;i<s.length()-1;i++)
    {
        sum=1;
        t=k;
        for(j=i+1;j<s.length();j++)
        {
            if(s.charAt(j)!=s.charAt(i)&&t>0)
            {
                t--;
                sum++;
            }
            else if(s.charAt(j)==s.charAt(i))
            {
                sum++;
            }
            else
            {
                break;
            }
            max = Math.max(max, sum);
        }
    }
    return max;
        
    }
public static void main(String[] args)
{
    //String s= "ABAB";
    //int k=2;
    //String s = "AABABBA";
    //int k = 1;
    //String s ="ABBB";
    //int k =2;
    System.out.println(characterReplacement(s,k));
}
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 6快捷安装RabbitMQ教程

1.安装Erlang yum install erlang 2.安装RabbitMQ yum install rabbitmq-server 3.配置开机自启动 chkconfig rabbitmq-server on 4.启动RabbitMQ service rabbitmq-server start 5.查询RabbitMQ路径 whereis rabbitmq 6.进入目录 7.开启RabbitMQ的Web管理界面 ./rabbitmq-plug…

java视频压缩 lz4_关于LZMA和LZ4压缩的疑惑解析

原标题&#xff1a;关于LZMA和LZ4压缩的疑惑解析这是第112篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题&#xff0c;建议阅读时间10分钟&#xff0c;认真读完必有收获。UWA QQ群&#xff1a;465082844(仅限技术交流)AssetBundleQ&#xff1a;…

微积分的发现是人类精神的最高胜利

来源 &#xff1a; 数学英才微积分早期的思想基础在25岁以前的伽利略就开始作了一系列实验&#xff0c;发现了许多有关物体在地球引力场运动的基本事实&#xff0c;最基本的就是自由落体定律。开普勒在1619年前后归纳为著名的行星运动三大定律。这些成就对后来的绝大部份的数学…

数据库MySQL/mariadb知识点——触发器

触发器 触发器&#xff1a;trigger&#xff0c;是指事先为某张表绑定一段代码&#xff0c;当表中的某些内容发生改变&#xff08;增、删、改&#xff09;的时候&#xff0c;系统会自动触发代码并执行。 触发器包含三个要素&#xff0c;分别为 事件类型&#xff1a;增删改&#…

Leetcode--826. 安排工作以达到最大收益

有一些工作&#xff1a;difficulty[i] 表示第i个工作的难度&#xff0c;profit[i]表示第i个工作的收益。 现在我们有一些工人。worker[i]是第i个工人的能力&#xff0c;即该工人只能完成难度小于等于worker[i]的工作。 每一个工人都最多只能安排一个工作&#xff0c;但是一个…

【前沿技术】2021九大技术趋势:规模化机器学习、「零信任」架构

来源&#xff1a;智能研究院《德勤2021年技术趋势》报告研究了疫情一年来对企业战略、运营和技术带来的连锁反应&#xff0c;论述了其重大发现&#xff1a;全球企业正在加速数字化战略转型&#xff0c;从而构建「韧性」、开创全新的经营模式。报告讨论了接下来18至24个月及以后…

Java项目打包成exe的详细教程

Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步&#xff1a; 1、 利用Eclipse先把Java项目先打成jar包 2、 利用exe4j工具把jar包转成exe 这里以Java项目&#xff08;ExeDemo&#xff09;为例进行讲解 随便在一个位置新建一个文件夹&#xff0c;文件夹的名称也…

linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

音频转码工具本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放。支持 Linux/Windows/Mac 平台因为是基于 JAVE 项目的修改&#xff0c;而 JAVE 是依赖 ffmpeg 所以可以适用于所有 ffmpeg 所支持的文件格式的转换。具体可以查看 JAVE 官方…

MySQL小问题:cant connect to MYSQL server on localhost

连接数据库发现出现了错误&#xff1a;2003-cant connext to MYSQL server on localhost 解决方法&#xff1a; 1.winr 打开cmd控制台&#xff0c;首先net startenter 查看有没有mysql服务启动&#xff0c;一般这不会出现问题 此时你输入mysql -u root -p 是会出现错误的 2…

【c# 学习笔记】所有类的父类:System.object

在c#中&#xff0c;所有的类都派生自System.Object类。如果定义的类&#xff0c;没有直达任何基类&#xff0c;编译器就会自动把Object类当作它的基类。和其他类 一样&#xff0c;System.Object类也定义了一组共有的成员&#xff0c;其定义如下&#xff1a; public class Objec…

数学史上的哲学绝唱——无穷观与数学基础的争论

来源&#xff1a;《广西民族大学学报》2014年11月作者&#xff1a;郭龙先&#xff0c;黄永两千多年来&#xff0c;数学家们一直试图从少数公理出发&#xff0c;根据明确给出的演绎规则推导出其他数学定理&#xff0c;从而把整个数学构造成为一个严密的演绎大厦&#xff0c;然后…

java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)

Discrete Cosine Transform [DCT] (离散余弦变换)描述&#xff1a;Binarizer是一个Transformer。离散余弦变换是与傅里叶变换相关的一种变换&#xff0c;它类似于离散傅立叶变换但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换&#xff0c;这个离散傅…

Leetcode--141. 环形链表

给定一个链表&#xff0c;判断链表中是否有环。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;则在该链表中没有环。 示例 1&#xff1a; 输入&#xff1a;head …

MapReduce 踩坑 - hadoop No FileSystem for scheme: file/hdfs

一、场景 hadoop-3.0.2 hbase-2.0.0 一个mapreduce任务&#xff0c;在IDEA下本地提交到hadoop集群可以正常运行。 现在需要将IDEA本地项目通过maven打成jar包&#xff0c;从而能够在windows/Linux命令行下&#xff0c;通过Java -jar方式运行。 二、状况 报错可能1&#xff1a;…

解读自动驾驶的2020:从硬件角度看,无人车商业化落地难在哪?

来源 &#xff1a;AI前线作者 &#xff1a;滴滴自动驾驶技术团队策划 &#xff1a;陈思「重点问题」什么是合适的无人驾驶车辆平台&#xff1f;复杂场景下的“无人驾驶”&#xff0c;传感器硬件系统还有哪些挑战&#xff1f;告别 demo 硬件系统后&#xff0c;下一个前装量产的必…

Leetcode--142. 环形链表Ⅱ

给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;则在该链表中没有…

java中字符串函数_JAVA中字符串函数subString的用法小结

string str;str&#xff1d;str.substring(int beginindex);截取掉str从首字母起长度为beginindex的字符串&#xff0c;将剩余字符串赋值给str&#xff1b;str&#xff1d;str.substring(int beginindex&#xff0c;int endindex);截取str中从beginindex开始至endindex结束时的…

select默认下拉箭头改变、option样式清除

谷歌、火狐、ie下 select 的默认下拉箭头图标差别还是比较大&#xff0c;一般我们都会清除默认样式&#xff0c;重新设计箭头图标&#xff1b; /* --ie清除--*/select::-ms-expand{ display: none; }/* --火狐、谷歌清除--*/select{appearance:none; -moz-appearance:none; -…

Leetcode--15. 三数之和

给定一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;找出所有满足条件且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 例如, 给定数组 nums [-1, 0, 1,…

他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能

来源&#xff1a;AI科技评论编译 &#xff1a;陈彩娴近日&#xff0c;有一篇发表在arXiv的论文“Deep Learning and the Global Workspace Theory”提出了一个大胆的猜想&#xff08;或理论&#xff09;。两位作者认为&#xff0c;当下的深度学习已经可以基于一个意识模型&…