首页 > 代码库 > Longest Substring Without Repeating Characters

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.

 

想了半天才想明白,这个题目啥意思。

就是说字符串中找一个没有一个字符是重复的最长的子字符串。比如说abcabcbb. 子字符串abc不重负,再加下一个a的话 就重复了。

 

下面这段代码 没有考虑效率问题

 1       public static int lengthOfLongestSubstring(String s) { 2             int max = 0; 3             String temp = ""; 4             char[] str = s.toCharArray(); 5             for(int i = 0; i < str.length; i++) 6             { 7                  8                 if(temp.contains((str[i] + "").trim())) 9                 {10                     temp = temp.substring(temp.indexOf(str[i]) + 1); 如果有重复的,就从重复的地方开始。11                 }12                  temp += str[i];13                  if(temp.length() > max)14                  {15                      max = temp.length();16                  }17                 18             }19             return max;20         }

 

Longest Substring Without Repeating Characters