LeetCode程序员面试题之无重复字符的最长子串
作者:97的风 时间:2021-09-12 05:26:36
1.简述:
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
2.代码实现:
class Solution {
public int lengthOfLongestSubstring(String s) {
// 哈希集合,记录每个字符是否出现过
Set<Character> occ = new HashSet<Character>();
int n = s.length();
// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动
int rk = -1, ans = 0;
for (int i = 0; i < n; ++i) {
if (i != 0) {
// 左指针向右移动一格,移除一个字符
occ.remove(s.charAt(i - 1));
}
while (rk + 1 < n && !occ.contains(s.charAt(rk + 1))) {
// 不断地移动右指针
occ.add(s.charAt(rk + 1));
++rk;
}
// 第 i 到 rk 个字符是一个极长的无重复字符子串
ans = Math.max(ans, rk - i + 1);
}
return ans;
}
}
来源:https://blog.51cto.com/u_15488507/6036041
标签:Java,最长子串
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java中的synchronized关键字
2023-07-28 18:39:26
SpringBoot如何使用自定义注解实现接口限流
2023-11-25 07:22:37
![](https://img.aspxhome.com/file/2023/0/60110_0s.png)
Java SpringBoot整合SpringCloud
2022-11-11 15:07:46
![](https://img.aspxhome.com/file/2023/2/63002_0s.png)
解析Java和Eclipse中加载本地库(.dll文件)的详细说明
2023-11-11 01:23:31
Spring interceptor拦截器配置及用法解析
2023-06-26 06:08:15
详解Spring Boot 定制HTTP消息转换器
2023-11-24 20:20:51
![](https://img.aspxhome.com/file/2023/3/59853_0s.png)
Springmvc发送json数据转Java对象接收
2023-07-07 16:26:16
让Java后台MySQL数据库能够支持emoji表情的方法
2022-12-30 04:24:45
200行java代码实现2048小游戏
2023-11-29 12:03:57
![](https://img.aspxhome.com/file/2023/3/60693_0s.gif)
Unity Shader实现黑幕过场效果
2022-01-13 00:18:10
![](https://img.aspxhome.com/file/2023/5/69205_0s.gif)
MyBatis中的模糊查询语句
2022-09-30 03:36:59
Java 由浅入深带你掌握图的遍历
2022-05-21 07:21:44
![](https://img.aspxhome.com/file/2023/8/65208_0s.png)
Java实现将类数据逐行写入CSV文件的方法详解
2023-02-27 17:11:11
线程局部变量的实现 ThreadLocal使用及场景介绍
2023-11-10 03:19:26
![](https://img.aspxhome.com/file/2023/1/59031_0s.jpg)
JPA多数据源分布式事务处理方案
2023-08-09 03:50:06
java内部类原理与用法详解
2022-12-04 14:41:25
Java泛型映射不同的值类型详解及实例代码
2023-07-29 00:20:52
Mybatis下的SQL注入漏洞原理及防护方法解析
2022-06-30 18:38:29
![](https://img.aspxhome.com/file/2023/2/63082_0s.png)
25行Java代码将普通图片转换为字符画图片和文本的实现
2023-11-24 02:04:26
![](https://img.aspxhome.com/file/2023/5/59855_0s.jpg)
java 动态 代理的方法总结
2023-08-25 04:00:33