您的位置:首页 > 其它

【leetcode】3.Longest Substring Without Repeating Characters

2016-09-30 23:14 316 查看
Question

Given a string, find the length of the longest substring without repeating characters.

Example

Given "abcabcbb" , the answer is"abc", which the length is 3.

Given "bbbb", 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.

Solution

public class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.length()<=1){                                          //如果字符串长度为0或1,返回其长度
return s.length();
}
String temp=s.substring(0,1);                               //截取字符串s的第一个字符
int max=1;

for(int i=1;i<s.length();i++){                              //判断子串中是否有跟当前s.charAt(i)一样的字符
if(!temp.contains(String.valueOf(s.charAt(i)))){
temp+=s.charAt(i);
}
else{
if(max<temp.length()){
max=temp.length();
}                                                   //若有,则从下一个字符开始截取后半段字符串
temp=temp.substring(temp.indexOf(s.charAt(i))+1)+String.valueOf(s.charAt(i));
}

if(max<temp.length()){
max=temp.length();
}
}
return max;
}
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: