leetcode - 3.Longest Substring Without Repeating Characters
2017-03-02 19:42
260 查看
Longest Substring Without Repeating Characters
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.
thinking:
使用动态规划的思想,动态计算最大长度
bacdfeaads | | ==> 向最大字符串内添加一个字符 bacdfeaads | | ==> 下一个字符是重复字符 bacdfeaads | | ==> 将head后移 bacdfeaads | | ==> 添加 ...
Solution1:
public int lengthOfLongestSubstring(String s) { int head = 0; int tail = 0; int longest = 0; int length = s.length(); String now; String letter; for (; tail < length; tail++) { now = s.substring(head, tail); letter = s.substring(tail, tail + 1); if (now.indexOf(letter) < 0) { if (longest < now.length() + 1) { longest = now.length() + 1; } } else { head = s.indexOf(letter, head) + 1; } } return longest; }
Soluction2:
答案
public int lengthOfLongestSubstring1(String s) { int[] letters = new int[128]; int longest = 0; int index = 0; for(int i = 0; i < s.length(); i++){ index = Math.max(letters[s.charAt(i)], index); longest = Math.max(i - index + 1, longest); //+1有深意 // 1. s可能是"" => longest不能为1 // 2. s的长度可能是1 => i - index + 1 //综上两个原因 => i + 1 letters[s.charAt(i)] = i + 1; } return longest; }
相关文章推荐
- [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算法题目:Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters 解题报告
- Leetcode Longest Substring Without Repeating Characters
- LeetCode 之 Longest Substring Without Repeating Characters
- LeetCode|Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters[leetcode]
- [Leetcode-3] Longest Substring Without Repeating Characters