当前位置:网站首页>每日一题-无重复字符的最长子串-0712
每日一题-无重复字符的最长子串-0712
2022-08-05 05:17:00 【菜鸡程序媛】
题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
解题思路:在map中存放字符串字符,当存在已有字符和当前的字符相等时,要更新滑动窗口的start,要取max(start, s.charAt(i) +1),因为当存在的相等的字符在更前面时,就会造成错误的区域划分,如"tmmzuxt",不取最大值的话,就会把第一个m当成新的开始值,但是m自身已经是重复的字符了。
其实可以这样想,如果start没有变大的话,就证明一直没有重复的字符出现过;既然有更大的值,就证明前面已经有重复的了,只能取更大的。即滑动窗口的左边届开始的后面不应该有重复的字符。
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s == null || s.length() == 0)
return 0;
int left = 0;
int max = 0;
Map<Character, Integer> map = new HashMap<>();
for(int i = 0; i < s.length(); i ++){
if(map.containsKey(s.charAt(i)))
left = Math.max(left, map.get(s.charAt(i)) + 1);
// 在更新重复的字符,如上面的第一个m和第二个m,第二个m写入就会把第一个覆盖掉
map.put(s.charAt(i), i);
max = Math.max(max, i - left + 1);
}
return max;
}
}
边栏推荐
- 「实用」运维新手一定不能错过的17 个技巧
- CVPR2021 - Inception Convolution with Efficient Dilation Search
- 每日一题-DFS
- 1008 数组元素循环右移问题 (20 分)
- 函数在开发环境中的应用(简易实例)
- Comparison and summary of Tensorflow2 and Pytorch in terms of basic operations of tensor Tensor
- Machine Learning (1) - Machine Learning Fundamentals
- 2021电赛资源及经验总结
- Leetcode刷题——对链表进行插入排序
- CAN、CAN FD
猜你喜欢
随机推荐
LeetCode刷题之第129题
CVPR最佳论文得主清华黄高团队提出首篇动态网络综述
浅谈遇到的小问题
【UiPath2022+C#】UiPath控制流程概述
电子产品量产工具(2)- 输入系统实现
【shell编程】第二章:条件测试语句
Comparison and summary of Tensorflow2 and Pytorch in terms of basic operations of tensor Tensor
三、自动配置源码分析
(C语言)strlen、strcpy、strcat、strcmp、strstr函数的模拟实现
函数在开发环境中的应用(简易实例)
用GAN的方法来进行图片匹配!休斯顿大学提出用于文本图像匹配的对抗表示学习,消除模态差异!
LeetCode刷题之第746题
A deep learning code base for Xiaobai, one line of code implements 30+ attention mechanisms.
5G中切片网络的核心技术FlexE
SQL(1) - Add, delete, modify and search
最简单的防抖节流理解法
【ts】typescript高阶:条件类型与infer
OSPF故障排除办法
多边形等分
网络信息安全运营方法论 (中)









