当前位置:网站首页>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^4s由英文字母、数字、符号和空格组成
解题思路
滑动窗口法
- 使用
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;
}
}
边栏推荐
猜你喜欢

为什么密码云服务平台是云时代的必然之选?

TensorFlow学习记录(三):高阶操作 & 神经网络与全连接层

新消费、出海、大健康......电子烟寻找“避风港”

聚焦数据来源、数据质量和模型性能构建小微企业信用画像

企业应当实施的5个云安全管理策略

Practical sharing of distributed link tracking Jaeger + microservice Pig on Rainbond

【PHP实现微信公众平台开发—基础篇】第2章 微信公众账号及申请流程详解

接入华为游戏防沉迷,点击防沉迷弹窗后游戏闪退

Motion Rule (16)-Union Check Basic Questions-Grid Game

redis未授权访问漏洞【vulhub靶场】复现
随机推荐
ReentrantLock 原理
Launcher app prediction
新消费、出海、大健康......电子烟寻找“避风港”
A comprehensive understanding of MOS tubes, an article is enough
业务中我们如何更新缓存?Redis
高手,云集在于REST、gRPC 和 GraphQL之间!
1314元的七夕礼盒,收割了多少直男?
项目里的各种配置,你都了解吗?
Oracle 19c 单实例 19.3.0 升级到19.11.0 详细教程
String是引用类型
yum 查看已经安装过的包并卸载
大神们都在用的神器,你和大神只差一个它!!
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
Cache character stream
酷开科技 × StarRocks:统一 OLAP 分析引擎,全面打造数字化的 OTT 模式
《独行月球》猛药,治不了开心麻花内耗
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
石子 无限拿
鲜花“刺客”收割七夕
Geoffrey Hinton:深度学习的下一个大事件