无重复字符的最长子串
给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其
长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b"
,所以其长度为 1。
示例 3:
"wke" "pwke"
提示:
0 <= s.length <= 5 * 104
s
由英文字母、数字、符号和空格组成
java解题代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Solution { public int lengthOfLongestSubstring(String s) { // 记录字符上一次出现的位置 int [] last = new int [ 128 ]; for ( int i = 0 ; i < 128 ; i++) { last[i] = - 1 ; } int n = s.length(); int res = 0 ; int start = 0 ; // 窗口开始位置 for ( int i = 0 ; i < n; i++) { int index = s.charAt(i); //读取s字符串中第i个元素的char值 start = Math.max(start, last[index] + 1 ); res = Math.max(res, i - start + 1 ); last[index] = i; } return res; } } |
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!