【LeetCode】3. Longest Substring Without Repeating Characters
2017-10-06 12:58
344 查看
Given a string, find the
4000
length of the longest substring without repeating characters.
Examples:
Given
which the length is 3.
Given
with the length of 1.
Given
with the length of 3. Note that the answer must be a substring,
a subsequence and not a substring.
题意:题意很简单,就是给定一个字符串,从中找到最长的不包含重复字符的子串,并返回其长度。
思路:利用kmp的思想加以优化,不断向右扫描并记录该字符所在的位置。遇到重复,则将扫描位置移动到该字符所记录位置的右侧,继续扫描。可以用数组或map实现。
代码如下:
4000
length of the longest substring without repeating characters.
Examples:
Given
"abcabcbb", the answer is
"abc",
which the length is 3.
Given
"bbbbb", the answer is
"b",
with the length of 1.
Given
"pwwkew", the answer is
"wke",
with the length of 3. Note that the answer must be a substring,
"pwke"is
a subsequence and not a substring.
题意:题意很简单,就是给定一个字符串,从中找到最长的不包含重复字符的子串,并返回其长度。
思路:利用kmp的思想加以优化,不断向右扫描并记录该字符所在的位置。遇到重复,则将扫描位置移动到该字符所记录位置的右侧,继续扫描。可以用数组或map实现。
代码如下:
public int lengthOfLongestSubstring(String s) { int max = 0, now = 0,i , j; int pos[] = new int[128]; Arrays.fill(pos, -1); for (i = 0;i < s.length();i++){ now = 1; pos[s.charAt(i)] = i; for (j = i + 1;j < s.length();j++){ if (pos[s.charAt(j)] > -1){ break; } pos[s.charAt(j)] = j; now++; } if (now > max){ max = now; } if (j < s.length()){ i = pos[s.charAt(j)]; } Arrays.fill(pos, -1); } return max; } public int lengthOfLongestSubstring(String s) { if (s.length()==0) return 0; HashMap<Character, Integer> map = new HashMap<Character, Integer>(); int max=0; for (int i=0, j=0; i<s.length(); ++i){ if (map.containsKey(s.charAt(i))){ j = Math.max(j,map.get(s.charAt(i))+1); } map.put(s.charAt(i),i); max = Math.max(max,i-j+1); } return max; }
相关文章推荐
- leetcode 3. Longest Substring Without Repeating Characters
- LeetCode-3. Longest Substring Without Repeating Characters
- [Leetcode]3. Longest Substring Without Repeating Characters
- [Leetcode] 3. Longest Substring Without Repeating Characters
- LeetCode 3. Longest Substring Without Repeating Characters
- leetcode : 3. Longest Substring Without Repeating Characters
- 【leetcode】3. Longest Substring Without Repeating Characters
- LeetCode||3. Longest Substring Without Repeating Characters
- LeetCode 3. Longest Substring Without Repeating Characters
- LeetCode *** 3. Longest Substring Without Repeating Characters
- leetcode 3. Longest Substring Without Repeating Characters
- [leetcode]3. Longest Substring Without Repeating Characters
- LeetCode——3. Longest Substring Without Repeating Characters
- Leetcode 3. Longest Substring Without Repeating Characters The Solution of Python and Javascript
- leetcode 3. Longest Substring Without Repeating Characters
- LeetCode 3. Longest Substring Without Repeating Characters
- LeetCode 3. Longest Substring Without Repeating Characters
- LeetCode 3. Longest Substring Without Repeating Characters
- [Leetcode]3. Longest Substring Without Repeating Characters @python
- LeetCode 3. Longest Substring Without Repeating Characters