leetcood学习笔记-3-无重复字符的最长子串
2024-08-28 13:09:02
题目描述:
方法一:O(N)
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
slow = 0
fast = 0
res_max = 0
table = dict()
while slow<len(s) and fast<len(s):
if s[fast] in table:
del(table[s[slow]])
slow+=1
else:
table[s[fast]] = fast
fast+=1
res_max = max(res_max,fast-slow)
return res_max
优化:
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
occ = set()
n = len(s)
rk,ans = -1 ,
for i in range(n):
if i != 0:
occ.remove(s[i-1])
while rk + 1 < n and s[rk + 1] not in occ:
occ.add(s[rk + 1])
rk +=
ans = max(ans,rk - i + 1)
return ans
java:
class Solution {
public int lengthOfLongestSubstring(String s) {
int ans = 0;
Set occ = new HashSet();
int n = s.length();
int rk = -1;
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;
}
ans = Math.max(ans,rk -i + 1);
}
return ans;
}
}
最新文章
- 列表中checked全选按钮的实现
- PCA 协方差矩阵特征向量的计算
- asp.net MVC3 无法打开项目文件“E:\我们的项目\Project\HeatingMIS.Web\HeatingMIS.Web.csproj”。此安装不支持该项目类型。
- C语言实现penna模型
- eclipse android logcat 只显示自己应用程序信息的设置方法
- NBUT 1602 Mod Three(线段树单点更新区间查询)
- 设计模式_Bridge
- 揭开嵌入式c面试题背后的玄机
- strtotime 的几点不同
- 《CSS网站布局实录》学习笔记(一)
- 请简述javascript的数据类型种类?
- VC 编程ANSI环境下读写Unicode文件
- 使用GetThumbnailImage进行图片缩放操作
- python3之OS与sys模块
- 菜鸟学习物联网---辨析基于Andriod 5.1,Linux,Windows10开发Dragon Board 410c板
- OO的奇妙冒险——OOP入门与字符串处理
- 佳鑫:信息流广告CTR一样高,哪条文案转化率更好?
- PowerDesigner ---- 数据库设计(物理模型CDM和概念模型PDM)
- JMeter学习(三十一)non-gui模式运行(转载)
- invalid END header解决方法