如何找到《剑指 Offer》中不含重复字符的最长子字符串?
- 内容介绍
- 文章标签
- 相关推荐
本文共计321个文字,预计阅读时间需要2分钟。
请从字符串中找出一个最长的、不包含重复字符的子字符串,并计算该子字符串的长度。
示例1:输入abc,输出abc,长度=3。
示例2:输入b,输出b,长度=1。
示例3:输入wke和pwke,输出pwke,长度=4。
提示:+s.length=40000,使用滑动窗口,哈希表来记录。
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。
示例1:
"abc",所以其
示例 2:
"b"
示例 3:
"wke"
"pwke"
提示:
s.length <= 40000
使用滑动窗口,哈希表来记录:
class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap<Character, Integer> map = new HashMap<>();
int max = 0;
for (int i = 0,start = 0; i < s.length(); i++) {
char c = s.charAt(i);
//如果重复
if (map.containsKey(c)) {
start = Math.max(map.get(c),start);
}
map.put(c,i+1);
max = Math.max(max,i-start+1);
}
return max ;
}
}
本文共计321个文字,预计阅读时间需要2分钟。
请从字符串中找出一个最长的、不包含重复字符的子字符串,并计算该子字符串的长度。
示例1:输入abc,输出abc,长度=3。
示例2:输入b,输出b,长度=1。
示例3:输入wke和pwke,输出pwke,长度=4。
提示:+s.length=40000,使用滑动窗口,哈希表来记录。
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。
示例1:
"abc",所以其
示例 2:
"b"
示例 3:
"wke"
"pwke"
提示:
s.length <= 40000
使用滑动窗口,哈希表来记录:
class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap<Character, Integer> map = new HashMap<>();
int max = 0;
for (int i = 0,start = 0; i < s.length(); i++) {
char c = s.charAt(i);
//如果重复
if (map.containsKey(c)) {
start = Math.max(map.get(c),start);
}
map.put(c,i+1);
max = Math.max(max,i-start+1);
}
return max ;
}
}

