Amazon - K Distinct SubString

public class Main {
    public static void main(String[] args) {
        List<String> list = findSubString("awaglknagawybagwkwagl",4);
        for(String s: list){
            System.out.println(s);
        }
    }
    
    public static List<String> findSubString(String input, int k){
        if(input == null || input.length() == 0 || k <= 0){
            return null;
        }
        Map<String, Integer> map = new HashMap<>();
        List<String> resList = new ArrayList<>();
        for(int i = 0; i<input.length()-k; i++){
            Set<Character> set = new HashSet<>();
            boolean isCharDup = false;
            for(int j=i; j<i+k; j++){
                char c = input.charAt(j);
                if(!set.contains(c)){
                    set.add(c);
                }
                else{
                    isCharDup = true;
                    break;
                }
            }
            if(!isCharDup){
                String subStr = input.substring(i, i+k);
                if(!map.containsKey(subStr)){
                    resList.add(subStr);
                }
                else{
                    map.put(subStr, 1);
                }
            }
        }
        return resList;
    }
}

猜你喜欢

转载自www.cnblogs.com/incrediblechangshuo/p/9194653.html
今日推荐