3.无重复最长子串
题目描述
给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
思路
最典型的dp问题,d[i] = d[i-1]+1(与d[i-1]中无重复),d[i] = n(有重复)
代码
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.length()==0)return 0;
int[] d = new int[s.length()];
char[] arr = s.toCharArray();
int res = 1;
d[0] = 1;
for(int i = 1;i <s.length();i++){
d[i] = d[i-1]+1;
for(int j = i - d[i-1];j<i;j++){
if(arr[j] == arr[i]){
d[i] = i-j;
break;
}
}
res = Math.max(res,d[i]);
}
return res;
}
}