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

LeetCode(31)无重复字符的最长子串【滑动窗口】【中等】

在这里插入图片描述

目录

    • 1.题目
    • 2.答案
    • 3.提交结果截图

链接: 无重复字符的最长子串

1.题目

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

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

提示:

  • 0 <= s.length <= 5 * 10^4
  • s 由英文字母、数字、符号和空格组成

2.答案

class Solution {public int lengthOfLongestSubstring(String s) {if (s.length() <= 1) {return s.length();}int maxLength = 0;char[] chars = s.toCharArray();Set<Character> set = new HashSet<>();List<Integer> positions = new ArrayList<>();for (int i = 0; i < chars.length; i++) {if (set.contains(chars[i])) {// 重复maxLength = Math.max(maxLength, set.size());Iterator<Integer> iterator = positions.iterator();while (iterator.hasNext()) {// 重置内容Integer position = iterator.next();set.remove(chars[position]);iterator.remove();if (chars[position] == chars[i]) {break;}}}set.add(chars[i]);positions.add(i);}maxLength = Math.max(maxLength, set.size());return maxLength == 0 ? chars.length : maxLength;}
}

3.提交结果截图

在这里插入图片描述

整理完毕,完结撒花~ 🌻

http://www.lryc.cn/news/237623.html

相关文章:

  • 天猫超市电商营销系统:无代码开发实现API连接集成
  • element表格分页+数据过滤筛选
  • 小程序判断是否授权位置信息和手动授权
  • 2023年亚太杯数学建模亚太赛A题思路解析+代码+论文
  • 【Android】画面卡顿优化列表流畅度六(终篇)
  • 一文了解:离散型制造业轻量化MES解决方案
  • 《云计算:云端协同,智慧互联》
  • Java stream流 常用记录
  • Spring Security6 用户身份认证
  • 钩子函数-hook
  • 拉链表-spark版本
  • 【笔记1-2】Qt系列:QkeyEvent 键盘事件 设定快捷键
  • adb突然获取不到华为/荣耀手机。。。
  • layui的layer.confirm获取按钮焦点
  • 【HarmonyOS】鸿蒙应用开发基础认证题目
  • Mocha
  • Java详解I/O
  • 数据处理生产环境_spark获取df列当前日期的前一天日期
  • 第四代智能井盖传感器,实时守护井盖位安全
  • 【前端知识】Node——文件流的读写操作
  • 解决证书加密问题:OpenSSL与urllib3的兼容性与优化
  • #gStore-weekly | gAnswer源码解析 调用NE模块流程
  • vscode 配置 lua
  • vscode设置代码模板
  • 用css实现原生form中radio单选框和input的hover已经focus的样式
  • uniapp:录音权限检查,录音功能
  • Rust开发——切片(slice)类型
  • 如何给shopify motion主题的产品系列添加description
  • 力扣刷题-二叉树-二叉树最小深度
  • 注解方式优雅的实现 Redisson 分布式锁