Java实现-最长无重复字符的子串

 

public class Solution {

        /**
         * @param s: a string
         * @return: an integer
         */

        public int lengthOfLongestSubstring(String s) {

            // write your code here

            if (s.length() == 0) {

                return 0;

            }

            int maxLength = 1;

            List<Character> list = new ArrayList<Character>();

            list.add(s.charAt(0));

            for (int i = 1; i < s.length(); i++) {

                if (list.contains(s.charAt(i))) {

                    int index = list.indexOf(s.charAt(i));

                    list = list.subList(index + 1, list.size());

                    list.add(s.charAt(i));

                    // System.out.println(list);

                    maxLength = Math.max(maxLength, list.size());

                } else {

                    list.add(s.charAt(i));

                    maxLength = Math.max(maxLength, list.size());

                }

            }

            return maxLength;

        }

    }

猜你喜欢

转载自blog.csdn.net/qq_35119422/article/details/81544968