无重复字符的最长字串
题目来源:无重复字符的最长字串
问题描述:
问题分析:
1.因为要获取最长子串的长度,所以需要遍历整个字符串。
2.判断当前字符是否在当前子串中重复出现,所以遍历当前子串,与当前字符比较(起始位置初始为0,结束位置为当前字符的前一个。)
3.如果发现当前最长子串中相同的字符,这时将当前子串的长度与当前的最大子串的长度比较,如果比当前最大子串大,则改变最大长度。然后应该对比的新子串,起始位置是前一个子串中相同位置的后一个字符(发现了相同字符,则要保证新子串中之只含有一个该字符,所以新的对比子串应跳过之前相同的字符)
代码实现:
class Solution {
public int lengthOfLongestSubstring(String s) {
if (s==null){
return 0;
}
int max=0;
int temp=1;
int n=0;
for (int i=0;i<s.length();i++){
for (int j=0+n;j<i;j++){
if (s.charAt(i)!=s.charAt(j)){
temp++;
}else {
n=j+1;
break;
}
}
if (temp>max){
max=temp;
}
temp=1;
}
return max;
}
}
运行结果:
补充:
如果小伙伴们有更优的解法或者思路,欢迎留言。
我感觉我的解法算是挺暴力的。