当前位置: 首页 > article >正文

【力扣热题100】[Java版] 刷题笔记-3. 无重复字符的最长子串

题目:3. 无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

解题思路

根据题目,只需要返回无重复字符串的最长子串的长度,所以我们不需要知道知道字符串内容是什么,在整个字符串 s 中,我们可以依次循环遍历字符串,以当前字符为起点,判断该字符为起点之后的不重复字符串长度,再与当前最长的长度进行比较,取较大值返回。

例如题目中:

s = abcabcbb

循环开始

以 (a)bcabcbb 开始, 不重复最长字符串为 abc ,长度为3

以 a(b)cabcbb 开始, 不重复最长字符串为 bca ,长度为3

以 ab(c)abcbb 开始, 不重复最长字符串为 cab ,长度为3

......以此类推

解题过程

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if (s.length() == 1) {
            return 1;
        }
        Set<Character> repeat = new HashSet<>();
        int max = 0, rk = -1;
        for (int i = 0; i < s.length(); i++) {
            if (i != 0) {
                repeat.remove(s.charAt(i - 1));
            }
            while (rk + 1 < s.length() && !repeat.contains(s.charAt(rk + 1))) {
                repeat.add(s.charAt(rk + 1));
                rk++;
            }
            max = Math.max(max, rk - i + 1);
        }
        return max;

    }
}


http://www.kler.cn/a/416826.html

相关文章:

  • 小迪安全第四十二天笔记 简单的mysql注入 mysql的基础知识 用户管理数据库模式 mysql 写入与读取 跨库查询
  • 计算机网络常见面试题总结(上)
  • ROS VSCode调试方法
  • NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比
  • ffmpeg 各版本号对应表格
  • Excel如何限制单元格内可选择的下拉框内容?
  • 虚拟机VMware安装OpenWrt镜像
  • 零基础学安全--Burp Suite(3)decodor comparer logger模块使用
  • 当新能源遇见低空经济:无人机在光伏领域的创新应用
  • 【网络协议栈】网络层(中)公有IP与私有IP、网络层中的路由(内附手画分析图 简单易懂)
  • 【conda】全面解析 Conda 配置文件:从完整示例到最佳实践
  • Python酷库之旅-第三方库Pandas(250)
  • 架构-微服务-服务网关
  • spring boot2.7集成OpenFeign 3.1.7
  • 服务器配环境
  • OD E卷 - 实现【正则表达式替换】
  • 使用uni-app进行开发前准备
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(5))
  • vue中如何获取public路径
  • Ubuntu 关机命令
  • 【LeetCode】每日一题 2024_11_30 判断是否可以赢得数字游戏(模拟)
  • NLP中的主题模型:LDA(Latent Dirichlet Allocation, 潜在狄利克雷分配)
  • vulnhub靶机之Fawkes
  • C#结合.NET框架快速构建和部署AI应用
  • 【超全总结】深度学习分割模型的损失函数类别及应用场景
  • sunshine和moonlight串流网络丢失帧高的问题(局域网)