image.png

    1. public static void main(String[] args) {
    2. String a = "abcabcbb";
    3. String b = "bbbbb";
    4. System.out.println(process(a.toCharArray()));
    5. System.out.println(process(b.toCharArray()));
    6. System.out.println(" ".trim().equals(""));
    7. }
    8. public static int process(char[] chs){
    9. int[] dp = new int[chs.length];
    10. int[] map = new int[128];
    11. for(int i = 0; i <map.length; i ++){
    12. map[i] = -1;
    13. }
    14. int max = 1;
    15. dp[0] = 1;
    16. map[chs[0]] = 0;
    17. for(int i = 1 ; i < chs.length; i ++){
    18. int l1 = map[chs[i]];
    19. int l2 = i-1 - dp[i-1];
    20. dp[i] = i - Math.max(l1, l2);
    21. map[chs[i] ] = i;
    22. max = Math.max(max, dp[i]);
    23. }
    24. return max;
    25. }