思路:如果当前子串里包含下一个字符,就使i递增,直到子串中不包含这一字符为止。如果不包含这一字符就让窗口扩大。这一解法主要利用了String的substring api。
public int lengthOfLongestSubstring(String s) {
if (s == null || s.equals(""))
return 0;
int n = s.length();
int res = 1, i = 0, j = 1;
while (i < n && j < n) {
String c = "" + s.charAt(j);
if (s.substring(i, j).contains(c)) {
int k = i;
i = k + s.substring(i, j).indexOf(c) + 1;
if (j <= i)
j = i + 1;
}
else if (s.charAt(i) != s.charAt(j)) {
j++;
}
res = Math.max(res, j - i);
}
return res;
}