这道题还可以,可能做过移动窗口的题,就觉得这个和那个类似,就能想到。
题目:
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.
我的代码:运行时间还可以
package test;
public class LC3Try1
{
public int lengthOfLongestSubstring(String s)
{
int ret = 0;
int len=s.length();
if(len==0){
return ret;
}
if(len==1){
return 1;
}
int start=0;
int end=1;
for(;end<len;end++){
for(int i=end-1;i>=start;i--){
if(s.charAt(end)==s.charAt(i)){
if((end-start)>ret){
ret=end-start;
}
start=i+1;//下一次从重复的这开始
break;
}
}
}
ret=Math.max(ret, end-start);
return ret;
}
public static void main(String[] args)
{
LC3Try1 t = new LC3Try1();
System.out.println(t.lengthOfLongestSubstring("pwwkew"));
}
}
哈哈