【LeetCode】003 Longest Substring Without Repeating Characters 最长的没有重复的子字符串
2017-08-23 19:13
393 查看
【LeetCode】003 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.
思路
AC
import java.util.*; public class Solution { // 超时,不通过 public int lengthOfLongestSubstring0(String s) { int maxLen = 0; List<Character> subList = new ArrayList<>(); for (int i = 0; i < s.length(); i ++){ char ch = s.charAt(i); int index = subList.indexOf(ch); if (index != -1){ if (maxLen < subList.size()) maxLen = subList.size(); if (index == subList.size()-1) subList.clear(); else subList = subList.subList(index+1, subList.size()); } subList.add(ch); } if (maxLen < subList.size()) maxLen = subList.size(); return maxLen; } public int lengthOfLongestSubstring(String s) { int maxLen = 0; StringBuilder sub = new StringBuilder(s.length()); int fromIndex = 0; for (int i = 0; i < s.length(); i ++){ char ch = s.charAt(i); int index = sub.indexOf(ch+"", fromIndex); // 重复“字符”(字符串)的位置 if (index != -1) fromIndex = index+1; // 不断调整起始下标 sub.append(ch); int len = sub.length() - fromIndex; // 总长度 - 起始下标 = 当前子字符串的长度 if (maxLen < len) maxLen = len; } return maxLen; } }
相关文章推荐
- LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium
- [LeetCode] Longest Substring Without Repeating Characters最长无重复子串
- LeetCode Longest Substring Without Repeating Characters 最长不重复子串查找
- LeetCode题库解答与分析——#3.无重复字符的最长子串LongestSubstringWithoutRepeatingCharacters
- LeetCode - Longest Substring Without Repeating Characters(最长不重复子串)
- [leetcode]Longest Substring Without Repeating Characters【最长不重复字符子串】
- LeetCode-3:Longest Substring Without Repeating Characters (最长无重复字符的子串) --medium
- 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 OJ Longest Substring Without Repeating Characters 不重复的最长字串 滑动窗口
- Longest Substring Without Repeating Characters求最长子串中没有重复字母的最长长度
- leetcode Longest Substring Without Repeating Characters 没有重复字符的最长子字符串
- leetcode 3 Longest Substring Without Repeating Characters最长无重复子串
- Leetcode-3 Longest Substring Without Repeating Characters 最长无重复字节字符串
- [C++]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(最长不重复子串 Python/C++)