【LeetCode】3. Longest Substring Without Repeating Characters
来源:互联网 发布:java源代码文件夹在 编辑:程序博客网 时间:2024/05/22 00:13
Given a string, find the 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; }
阅读全文
0 0
- [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
- 3. Longest Substring Without Repeating Characters LeetCode
- (Leetcode)3. Longest Substring Without Repeating Characters
- leetcode 3. Longest Substring Without Repeating Characters
- LeetCode-3. Longest Substring Without Repeating Characters
- windows下安装使用docker(以网易蜂巢为仓库)
- Codeforces Round #438 (Div. 1 + Div. 2 combined) C. Qualification Rounds
- 二叉搜索树的后序遍历序列
- Spring的@Scope的几种取值
- 进程调度算法
- 【LeetCode】3. Longest Substring Without Repeating Characters
- STL 算法分类
- HashMap排序
- FTPrep, 102 Binary Tree Level Order Traversal
- 如何设置python环境变量?
- android显示缓存大小和清除缓存功能
- CMM语言解释器构造实践(一)——前言
- Lost connection to MySQL server at 'reading initial communication packet et system error:0
- Leetcode-Climbing Stairs(dp)