利用滑动窗口来解
package lyzz.leetcode003;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String str = "abba";
int nums = SlidingWindow(str);
System.out.println(nums);
}
public static int SlidingWindow(String s) {
int n = s.length(), ans = 0;
Map<Character, Integer> map = new HashMap<>();
for (int end = 0, start = 0; end < n; end++) {
char alpha = s.charAt(end);
if (map.containsKey(alpha)) {
start = Math.max(map.get(alpha), start);
}
ans = Math.max(ans, end - start + 1);
map.put(s.charAt(end), end + 1);
}
return ans;
}
}