当前位置:网站首页>LeetCode_3_无重复字符的最长子串
LeetCode_3_无重复字符的最长子串
2022-08-04 12:46:00 【Fitz1318】
题目链接
题目描述
给定一个字符串 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
由英文字母、数字、符号和空格组成
解题思路
滑动窗口法
- 使用
left
、right
表示窗口的左右边界,这个窗口就是一个子串 - 使用
HashSet
来记录窗口里的元素 - 每次查看
nums[right]
,来判断窗口是移动还是扩张- 当
set
中有nums[right]
时,一直将left++
,直到满足题目要求 - 当
set
中没有nums[right]
时,right++
,并记录窗口最大值
- 当
AC代码
class Solution {
public int lengthOfLongestSubstring(String s) {
HashSet<Character> set = new HashSet<>();
int ans = 0;
int left = 0;
int right = 0;
for (right = 0; right < s.length(); right++) {
char c = s.charAt(right);
while (set.contains(c)) {
set.remove(s.charAt(left));
left++;
}
set.add(c);
ans = Math.max(ans, right - left + 1);
}
return ans;
}
}
边栏推荐
猜你喜欢
动规(16)-并查集基础题——格子游戏
num_workers
5 cloud security management strategies enterprises should implement
Hit the interview!The latest interview booklet of Ali Jin, nine silver and ten is stable!
num_workers
redis未授权访问漏洞【vulhub靶场】复现
接入华为游戏防沉迷,点击防沉迷弹窗后游戏闪退
新消费、出海、大健康......电子烟寻找“避风港”
什么是 DevOps?看这一篇就够了!
持续交付(三)Jenkinsfile语法使用介绍
随机推荐
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
21天学习挑战赛--第二天打卡(setSystemUiVisibility、导航栏、状态栏)
String是引用类型
动规(16)-并查集基础题——格子游戏
A comprehensive understanding of MOS tubes, an article is enough
MATLAB——图像分块
罗振宇的A股梦,咋这么难圆?
接到“网站动态换主题”的需求,我是如何踩坑的
Small program on how to play in the construction of e-government service platform value
常用代码模板1——基础语法
yolo系列的head模块
Chinese valentine's day of young people crazy to make money, earn 140000 a week
视觉SLAM十四讲学习笔记 第7讲 视觉里程计
Two years of independent development experience Programmers tell us the experience of making money (listen to the masters who really make money)
【水一个徽章】
Django使用腾讯云发送短信并存入redis
双目立体视觉笔记(三)三角测量、极线校正
他是“中台”之父,凭一个概念为阿里狂赚百亿
绩效考核带给员工的不能只是压力
Control CD-ROM with VbScript