Find longest substring without repeating characters

前端 未结 30 2541
轻奢々
轻奢々 2020-12-12 18:07

Given a string S of length N find longest substring without repeating characters.

Example:

Input:

30条回答
  •  悲&欢浪女
    2020-12-12 18:58

    import java.util.HashMap;
    import java.util.HashSet;
    
    public class SubString {
        public static String subString(String input) {
    
            String longesTillNOw = "";
    
            String longestOverAll = "";
            HashMap chars = new HashMap<>();
            char[] array=input.toCharArray();
            int start=0;
            for (int i = 0; i < array.length; i++) {
                char charactor = array[i];
                if (chars.containsKey(charactor) ) {
                    start=chars.get(charactor)+1;
                    i=start;
                    chars.clear();
                    longesTillNOw = "";
                } else {
                    chars.put(charactor,i);
                    longesTillNOw = longesTillNOw + charactor;
                    if (longesTillNOw.length() > longestOverAll.length()) {
                        longestOverAll = longesTillNOw;
                    }
                }
            }
            return longestOverAll;
    
        }
    
        public static void main(String[] args) {
            String input = "stackoverflowabcdefghijklmn";
            System.out.println(subString(input));
        }
    }
    

提交回复
热议问题