美文网首页
subString concatenation of All w

subString concatenation of All w

作者: 怎样会更好 | 来源:发表于2018-12-09 15:08 被阅读0次

    思路,使用两个map,一个map收集单词的频率一个用来存遍历的时候的单词。

    class Solution {
        public List<Integer> findSubstring(String s, String[] words) {
            List<Integer> res = new ArrayList<>();
            if(words.length == 0){
                return res;
            }
            Map<String,Integer> count = new HashMap<>();
            //使用一个数组记数组内单词出现的频率。
            for(String word : words){
                count.put(word, count.getOrDefault(word,0)+1);
            }
            int n = s.length();
            int num = words.length;
            //单词的长度
            int len = words[0].length();
            int j= 0 ;
            Map<String,Integer> inde = new HashMap<>();
            for(int i = 0,length = n - num * len;i<=length;i++){
                inde.clear();
                j = 0;
                while(j<num){
                    String s1 = s.substring(i+j*len,i+(j+1)*len);
                    if(count.containsKey(s1)){
                        inde.put(s1,inde.getOrDefault(s1,0)+1);
                        if(inde.get(s1)>count.get(s1)){
                            break;
                        }
                    }else{
                        break;
                    }
                    j++;
                }
                if(j == num){
                    res.add(i);
                }
            }
            return res;
        }
    }
    

    相关文章

      网友评论

          本文标题:subString concatenation of All w

          本文链接:https://www.haomeiwen.com/subject/oatkhqtx.html